Removed a lot of dead code and unused imports.
- Legacy-Id: 6578
This commit is contained in:
parent
1208ae708b
commit
45b9b45f28
|
@ -3,12 +3,7 @@
|
|||
#import models
|
||||
import datetime
|
||||
import os
|
||||
import re
|
||||
import tarfile
|
||||
|
||||
from tempfile import mkstemp
|
||||
|
||||
from django import forms
|
||||
from django.http import Http404
|
||||
from django.http import HttpRequest
|
||||
from django.db.models import Max, Q
|
||||
|
@ -17,10 +12,8 @@ from django.core.cache import cache
|
|||
from django.utils.cache import get_cache_key
|
||||
|
||||
import debug
|
||||
import urllib
|
||||
|
||||
from django.shortcuts import get_object_or_404
|
||||
from ietf.idtracker.models import InternetDraft
|
||||
from ietf.ietfauth.decorators import has_role
|
||||
from ietf.utils.history import find_history_active_at
|
||||
from ietf.doc.models import Document, State
|
||||
|
@ -28,125 +21,9 @@ from ietf.doc.models import Document, State
|
|||
from ietf.proceedings.models import Meeting as OldMeeting, MeetingTime, IESGHistory, Switches
|
||||
|
||||
# New models
|
||||
from ietf.meeting.models import Meeting, TimeSlot, Session
|
||||
from ietf.meeting.models import Schedule, ScheduledSession
|
||||
from ietf.meeting.models import Meeting
|
||||
from ietf.group.models import Group
|
||||
|
||||
class NamedTimeSlot(object):
|
||||
"""
|
||||
this encapsulates a TimeSlot with a Schedule, so that
|
||||
specific time slots can be returned as appropriate. It proxies
|
||||
most things to TimeSlot. Agenda_info returns an array of these
|
||||
objects rather than actual Time Slots, as the templates do not
|
||||
permit multiple parameters to be passed into a relation.
|
||||
This may be irrelevant with Django 1.3+, given with argument extension
|
||||
to templating language.
|
||||
"""
|
||||
def __init__(self, agenda, timeslot):
|
||||
self.agenda = agenda
|
||||
self.timeslot = timeslot
|
||||
|
||||
def scheduledsessions(self):
|
||||
self.timeslot.scheduledsessions_set.filter(schedule=self.agenda, session__isnull=False)
|
||||
|
||||
@property
|
||||
def time(self):
|
||||
return self.timeslot.time
|
||||
|
||||
@property
|
||||
def meeting_date(self):
|
||||
return self.timeslot.meeting_date
|
||||
|
||||
@property
|
||||
def reg_info(self):
|
||||
return self.timeslot.reg_info
|
||||
|
||||
@property
|
||||
def registration(self):
|
||||
return self.timeslot.registration
|
||||
|
||||
@property
|
||||
def session_name(self):
|
||||
return self.timeslot.session_name
|
||||
|
||||
@property
|
||||
def break_info(self):
|
||||
return self.timeslot.break_info
|
||||
|
||||
@property
|
||||
def time_desc(self):
|
||||
return self.timeslot.time_desc
|
||||
|
||||
@property
|
||||
def is_plenary(self):
|
||||
return self.timeslot.is_plenary
|
||||
|
||||
def is_plenaryw(self):
|
||||
return self.timeslot.is_plenary_type("opsplenary")
|
||||
|
||||
def is_plenaryt(self):
|
||||
return self.timeslot.is_plenary_type("techplenary")
|
||||
|
||||
@property
|
||||
def tzname(self):
|
||||
return self.timeslot.tzname
|
||||
|
||||
@property
|
||||
def room_name(self):
|
||||
if self.timeslot:
|
||||
if self.timeslot.location:
|
||||
return self.timeslot.location.name
|
||||
else:
|
||||
return "no room set for plenary %u" % (self.timeslot.pk)
|
||||
else:
|
||||
return "bogus NamedTimeSlot"
|
||||
|
||||
@property
|
||||
def sessions(self):
|
||||
return [ ss.session for ss in self.timeslot.scheduledsession_set.filter(schedule=self.agenda, schedule__isnull=False) ]
|
||||
|
||||
@property
|
||||
def scheduledsessions_at_same_time(self):
|
||||
if not hasattr(self, "sessions_at_same_time_cache"):
|
||||
self.sessions_at_same_time_cache = self.timeslot.scheduledsessions_at_same_time(self.agenda)
|
||||
return self.sessions_at_same_time_cache
|
||||
|
||||
@property
|
||||
def scheduledsessions(self):
|
||||
return self.timeslot.scheduledsession_set.filter(schedule=self.agenda)
|
||||
|
||||
@property
|
||||
def scheduledsessions_by_area(self):
|
||||
things = self.scheduledsessions_at_same_time
|
||||
if things is not None:
|
||||
return [ {"area":ss.area+ss.acronym_name, "info":ss} for ss in things ]
|
||||
else:
|
||||
return [ ]
|
||||
|
||||
@property
|
||||
def slot_decor(self):
|
||||
return self.timeslot.slot_decor
|
||||
|
||||
def get_ntimeslots_from_ss(agenda, scheduledsessions):
|
||||
ntimeslots = []
|
||||
time_seen = set()
|
||||
|
||||
for ss in scheduledsessions:
|
||||
t = ss.timeslot
|
||||
if not t.time in time_seen:
|
||||
time_seen.add(t.time)
|
||||
ntimeslots.append(NamedTimeSlot(agenda, t))
|
||||
time_seen = None
|
||||
|
||||
return ntimeslots
|
||||
|
||||
def get_ntimeslots_from_agenda(agenda):
|
||||
# now go through the timeslots, only keeping those that are
|
||||
# sessions/plenary/training and don't occur at the same time
|
||||
scheduledsessions = agenda.scheduledsession_set.all().order_by("timeslot__time").exclude(timeslot__type = "unavail")
|
||||
ntimeslots = get_ntimeslots_from_ss(agenda, scheduledsessions)
|
||||
return ntimeslots, scheduledsessions
|
||||
|
||||
def find_ads_for_meeting(meeting):
|
||||
ads = []
|
||||
meeting_time = datetime.datetime.combine(meeting.date, datetime.time(0, 0, 0))
|
||||
|
@ -249,7 +126,6 @@ def build_all_agenda_slices(scheduledsessions, all = False):
|
|||
time_slices = []
|
||||
date_slices = {}
|
||||
|
||||
ids = []
|
||||
for ss in scheduledsessions:
|
||||
if(all or ss.session != None):# and len(ss.timeslot.session.agenda_note)>1):
|
||||
ymd = ss.timeslot.time.date()
|
||||
|
|
|
@ -14,7 +14,6 @@ from timedeltafield import TimedeltaField
|
|||
|
||||
# mostly used by json_dict()
|
||||
from django.template.defaultfilters import slugify, date as date_format, time as time_format
|
||||
from django.utils import formats
|
||||
|
||||
from ietf.group.models import Group
|
||||
from ietf.person.models import Person
|
||||
|
@ -38,11 +37,6 @@ def fmt_date(o):
|
|||
d = datetime_safe.new_date(o)
|
||||
return d.strftime(DATE_FORMAT)
|
||||
|
||||
def fmt_datetime(o):
|
||||
d = datetime_safe.new_date(o)
|
||||
return d.strftime("%s %s" % (DATE_FORMAT, TIME_FORMAT))
|
||||
|
||||
|
||||
class Meeting(models.Model):
|
||||
# number is either the number for IETF meetings, or some other
|
||||
# identifier for interim meetings/IESG retreats/liaison summits/...
|
||||
|
@ -116,10 +110,6 @@ class Meeting(models.Model):
|
|||
return qs[0]
|
||||
return None
|
||||
|
||||
@property
|
||||
def sessions_that_wont_meet(self):
|
||||
return self.session_set.filter(status__slug='notmeet')
|
||||
|
||||
@property
|
||||
def sessions_that_can_meet(self):
|
||||
return self.session_set.exclude(status__slug='notmeet').exclude(status__slug='disappr').exclude(status__slug='deleted').exclude(status__slug='apprw')
|
||||
|
@ -159,7 +149,6 @@ class Meeting(models.Model):
|
|||
time_slices = {} # the times on each day
|
||||
slots = {}
|
||||
|
||||
ids = []
|
||||
for ts in self.timeslot_set.all():
|
||||
if ts.location is None:
|
||||
continue
|
||||
|
@ -290,16 +279,6 @@ class TimeSlot(models.Model):
|
|||
self._reg_info = None
|
||||
return self._reg_info
|
||||
|
||||
def reg_info(self):
|
||||
return (self.registration() is not None)
|
||||
|
||||
def break_info(self):
|
||||
breaks = self.__class__.objects.filter(meeting=self.meeting, time__month=self.time.month, time__day=self.time.day, type="break").order_by("time")
|
||||
for brk in breaks:
|
||||
if brk.time_desc[-4:] == self.time_desc[:4]:
|
||||
return brk
|
||||
return None
|
||||
|
||||
def __unicode__(self):
|
||||
location = self.get_location()
|
||||
if not location:
|
||||
|
@ -319,6 +298,7 @@ class TimeSlot(models.Model):
|
|||
if not self.show_location:
|
||||
location = ""
|
||||
return location
|
||||
|
||||
@property
|
||||
def tz(self):
|
||||
if self.meeting.time_zone:
|
||||
|
@ -343,30 +323,6 @@ class TimeSlot(models.Model):
|
|||
else:
|
||||
return None
|
||||
|
||||
def session_name(self):
|
||||
if self.type_id not in ("session", "plenary"):
|
||||
return None
|
||||
|
||||
class Dummy(object):
|
||||
def __unicode__(self):
|
||||
return self.session_name
|
||||
d = Dummy()
|
||||
d.session_name = self.name
|
||||
return d
|
||||
|
||||
def session_for_schedule(self, schedule):
|
||||
ss = scheduledsession_set.filter(schedule=schedule).all()[0]
|
||||
if ss:
|
||||
return ss.session
|
||||
else:
|
||||
return None
|
||||
|
||||
def scheduledsessions_at_same_time(self, agenda=None):
|
||||
if agenda is None:
|
||||
agenda = self.meeting.agenda
|
||||
|
||||
return agenda.scheduledsession_set.filter(timeslot__time=self.time, timeslot__type__in=("session", "plenary", "other"))
|
||||
|
||||
@property
|
||||
def js_identifier(self):
|
||||
# this returns a unique identifier that is js happy.
|
||||
|
@ -375,25 +331,6 @@ class TimeSlot(models.Model):
|
|||
# {{r|slugify}}_{{day}}_{{slot.0|date:'Hi'}}
|
||||
return "%s_%s_%s" % (slugify(self.get_location()), self.time.strftime('%Y-%m-%d'), self.time.strftime('%H%M'))
|
||||
|
||||
|
||||
@property
|
||||
def is_plenary(self):
|
||||
return self.type_id == "plenary"
|
||||
|
||||
def is_plenary_type(self, name, agenda=None):
|
||||
return self.type_id == "plenary" and self.sessions.all()[0].short == name
|
||||
|
||||
@property
|
||||
def slot_decor(self):
|
||||
if self.type_id == "plenary":
|
||||
return "plenary";
|
||||
elif self.type_id == "session":
|
||||
return "session";
|
||||
elif self.type_id == "non-session":
|
||||
return "non-session";
|
||||
else:
|
||||
return "reserved";
|
||||
|
||||
def json_dict(self, selfurl):
|
||||
ts = dict()
|
||||
ts['timeslot_id'] = self.id
|
||||
|
@ -558,10 +495,6 @@ class Schedule(models.Model):
|
|||
def qs_scheduledsessions_with_assignments(self):
|
||||
return self.scheduledsession_set.filter(session__isnull=False)
|
||||
|
||||
@property
|
||||
def qs_scheduledsessions_without_assignments(self):
|
||||
return self.scheduledsession_set.filter(session__isnull=True)
|
||||
|
||||
@property
|
||||
def group_mapping(self):
|
||||
assignments,sessions,total,scheduled = self.group_session_mapping
|
||||
|
@ -586,12 +519,6 @@ class Schedule(models.Model):
|
|||
scheduled =+ 1
|
||||
return assignments,sessions,total,scheduled
|
||||
|
||||
# calculate badness of entire schedule
|
||||
def calc_badness(self):
|
||||
# now calculate badness
|
||||
assignments = self.group_mapping
|
||||
return self.calc_badness1(assignments)
|
||||
|
||||
cached_sessions_that_can_meet = None
|
||||
@property
|
||||
def sessions_that_can_meet(self):
|
||||
|
@ -599,14 +526,6 @@ class Schedule(models.Model):
|
|||
self.cached_sessions_that_can_meet = self.meeting.sessions_that_can_meet.all()
|
||||
return self.cached_sessions_that_can_meet
|
||||
|
||||
# calculate badness of entire schedule
|
||||
def calc_badness1(self, assignments):
|
||||
badness = 0
|
||||
for sess in self.sessions_that_can_meet:
|
||||
badness += sess.badness(assignments)
|
||||
self.badness = badness
|
||||
return badness
|
||||
|
||||
def area_list(self):
|
||||
return ( self.assignments.filter(session__group__type__slug__in=['wg', 'rg', 'ag'],
|
||||
session__group__parent__isnull=False)
|
||||
|
@ -645,10 +564,6 @@ class ScheduledSession(models.Model):
|
|||
def room_name(self):
|
||||
return self.timeslot.location.name
|
||||
|
||||
@property
|
||||
def special_agenda_note(self):
|
||||
return self.session.agenda_note if self.session else ""
|
||||
|
||||
@property
|
||||
def acronym(self):
|
||||
if self.session and self.session.group:
|
||||
|
@ -662,23 +577,6 @@ class ScheduledSession(models.Model):
|
|||
else:
|
||||
return None
|
||||
|
||||
@property
|
||||
def acronym_name(self):
|
||||
if not self.session:
|
||||
return self.notes
|
||||
if hasattr(self, "interim"):
|
||||
return self.session.group.name + " (interim)"
|
||||
elif self.session.name:
|
||||
return self.session.name
|
||||
else:
|
||||
return self.session.group.name
|
||||
|
||||
@property
|
||||
def session_name(self):
|
||||
if self.timeslot.type_id not in ("session", "plenary"):
|
||||
return None
|
||||
return self.timeslot.name
|
||||
|
||||
@property
|
||||
def area(self):
|
||||
if not self.session or not self.session.group:
|
||||
|
@ -691,31 +589,6 @@ class ScheduledSession(models.Model):
|
|||
return ""
|
||||
return self.session.group.parent.acronym
|
||||
|
||||
# def break_info(self):
|
||||
# breaks = self.schedule.scheduledsessions_set.filter(timeslot__time__month=self.timeslot.time.month, timeslot__time__day=self.timeslot.time.day, timeslot__type="break").order_by("timeslot__time")
|
||||
# now = self.timeslot.time_desc[:4]
|
||||
# for brk in breaks:
|
||||
# if brk.time_desc[-4:] == now:
|
||||
# return brk
|
||||
# return None
|
||||
|
||||
@property
|
||||
def area_name(self):
|
||||
if self.timeslot.type_id == "plenary":
|
||||
return "Plenary Sessions"
|
||||
elif self.session and self.session.group and self.session.group.acronym == "edu":
|
||||
return "Training"
|
||||
elif not self.session or not self.session.group or not self.session.group.parent or not self.session.group.parent.type_id == "area":
|
||||
return ""
|
||||
return self.session.group.parent.name
|
||||
|
||||
@property
|
||||
def isWG(self):
|
||||
if not self.session or not self.session.group:
|
||||
return False
|
||||
if self.session.group.type_id == "wg" and self.session.group.state_id != "bof":
|
||||
return True
|
||||
|
||||
@property
|
||||
def group_type_str(self):
|
||||
if not self.session or not self.session.group:
|
||||
|
@ -982,12 +855,12 @@ class Session(models.Model):
|
|||
return sess1
|
||||
|
||||
def badness_test(self, num):
|
||||
import sys
|
||||
from settings import BADNESS_CALC_LOG
|
||||
#sys.stdout.write("num: %u / BAD: %u\n" % (num, BADNESS_CALC_LOG))
|
||||
return BADNESS_CALC_LOG >= num
|
||||
|
||||
def badness_log(self, num, msg):
|
||||
import sys
|
||||
if self.badness_test(num):
|
||||
sys.stdout.write(msg)
|
||||
|
||||
|
@ -1013,7 +886,6 @@ class Session(models.Model):
|
|||
|
||||
if self.badness_test(2):
|
||||
self.badness_log(2, "badgroup: %s badness calculation has %u constraints\n" % (self.group.acronym, len(conflicts)))
|
||||
import sys
|
||||
from settings import BADNESS_UNPLACED, BADNESS_TOOSMALL_50, BADNESS_TOOSMALL_100, BADNESS_TOOBIG, BADNESS_MUCHTOOBIG
|
||||
count = 0
|
||||
myss_list = assignments[self.group]
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
#import models
|
||||
import datetime
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
import tarfile
|
||||
|
@ -23,7 +22,6 @@ from django.utils.decorators import decorator_from_middleware
|
|||
from ietf.ietfauth.decorators import group_required, has_role
|
||||
from django.middleware.gzip import GZipMiddleware
|
||||
from django.db.models import Max
|
||||
from ietf.group.colors import fg_group_colors, bg_group_colors
|
||||
from django.forms.models import modelform_factory
|
||||
|
||||
import debug
|
||||
|
@ -33,17 +31,15 @@ from ietf.utils.pipe import pipe
|
|||
from ietf.doc.models import Document, State
|
||||
|
||||
# Old model -- needs to be removed
|
||||
from ietf.proceedings.models import Meeting as OldMeeting, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches
|
||||
from ietf.proceedings.models import Meeting as OldMeeting, WgMeetingSession, Proceeding, Switches
|
||||
|
||||
# New models
|
||||
from ietf.person.models import Person
|
||||
from ietf.meeting.models import Meeting, TimeSlot, Session
|
||||
from ietf.meeting.models import Schedule, ScheduledSession, Room
|
||||
from ietf.meeting.models import TimeSlot, Session, Schedule
|
||||
from ietf.group.models import Group
|
||||
|
||||
from ietf.meeting.helpers import NamedTimeSlot, get_ntimeslots_from_ss
|
||||
from ietf.meeting.helpers import get_ntimeslots_from_agenda, agenda_info
|
||||
from ietf.meeting.helpers import get_areas, get_area_list_from_sessions, get_pseudo_areas
|
||||
from ietf.meeting.helpers import agenda_info
|
||||
from ietf.meeting.helpers import get_areas
|
||||
from ietf.meeting.helpers import build_all_agenda_slices, get_wg_name_list
|
||||
from ietf.meeting.helpers import get_scheduledsessions_from_schedule, get_all_scheduledsessions_from_schedule
|
||||
from ietf.meeting.helpers import get_modified_from_scheduledsessions
|
||||
|
@ -91,56 +87,6 @@ def current_materials(request):
|
|||
meeting = OldMeeting.objects.exclude(number__startswith='interim-').order_by('-meeting_num')[0]
|
||||
return HttpResponseRedirect( reverse(materials, args=[meeting.meeting_num]) )
|
||||
|
||||
def get_plenary_agenda(meeting_num, id):
|
||||
try:
|
||||
plenary_agenda_file = settings.AGENDA_PATH + WgMeetingSession.objects.get(meeting=meeting_num,group_acronym_id=id).agenda_file()
|
||||
try:
|
||||
f = open(plenary_agenda_file)
|
||||
plenary_agenda = f.read()
|
||||
f.close()
|
||||
return plenary_agenda
|
||||
except IOError:
|
||||
return "THE AGENDA HAS NOT BEEN UPLOADED YET"
|
||||
except WgMeetingSession.DoesNotExist:
|
||||
return "The Plenary has not been scheduled"
|
||||
|
||||
##########################################################################################################################
|
||||
## dispatch based upon request type.
|
||||
def agenda_html_request(request,num=None, schedule_name=None):
|
||||
if request.method == 'POST':
|
||||
return agenda_create(request, num, schedule_name)
|
||||
else:
|
||||
# GET and HEAD.
|
||||
return html_agenda(request, num, schedule_name)
|
||||
|
||||
def legacy_get_agenda_info(request, num=None, schedule=None):
|
||||
meeting = get_meeting(num)
|
||||
timeslots = TimeSlot.objects.filter(Q(meeting__id = meeting.id)).exclude(type__slug='unavail').order_by('time','name')
|
||||
modified = timeslots.aggregate(Max('modified'))['modified__max']
|
||||
|
||||
area_list = list(set([ session.group.parent.acronym for session in [ timeslot.session for timeslot in timeslots.filter(type = 'Session', sessions__group__parent__isnull = False, scheduledsession__schedule=schedule).order_by('sessions__group__parent__acronym').distinct() if timeslot.session ] ]))
|
||||
area_list.sort()
|
||||
|
||||
# wg_name_list = timeslots.filter(type = 'Session', sessions__group__isnull = False, sessions__group__parent__isnull = False, scheduledsession__schedule=schedule).order_by('sessions__group__acronym').distinct('sessions__group')#.values_list('sessions__group__acronym',flat=True)
|
||||
wg_name_list = list(set([ session.group.acronym for session in [ timeslot.session for timeslot in timeslots.filter(type = 'Session', sessions__group__parent__isnull = False, scheduledsession__schedule=schedule).order_by('sessions__group__acronym').distinct() if timeslot.session ] ]))
|
||||
|
||||
wg_list = Group.objects.filter(acronym__in = set(wg_name_list)).order_by('parent__acronym','acronym')
|
||||
|
||||
return timeslots, modified, meeting, area_list, wg_list
|
||||
|
||||
def get_agenda_info(request, num=None, schedule_name=None):
|
||||
meeting = get_meeting(num)
|
||||
schedule = get_schedule(meeting, schedule_name)
|
||||
scheduledsessions = get_scheduledsessions_from_schedule(schedule)
|
||||
modified = get_modified_from_scheduledsessions(scheduledsessions)
|
||||
|
||||
area_list = get_areas()
|
||||
wg_list = get_wg_list(scheduledsessions)
|
||||
time_slices,date_slices = build_all_agenda_slices(scheduledsessions, False)
|
||||
rooms = meeting.room_set
|
||||
|
||||
return scheduledsessions, schedule, modified, meeting, area_list, wg_list, time_slices, date_slices, rooms
|
||||
|
||||
def mobile_user_agent_detect(request):
|
||||
if settings.SERVER_MODE != 'production' and '_testiphone' in request.REQUEST:
|
||||
user_agent = "iPhone"
|
||||
|
@ -152,28 +98,6 @@ def mobile_user_agent_detect(request):
|
|||
user_agent = ""
|
||||
return user_agent
|
||||
|
||||
@decorator_from_middleware(GZipMiddleware)
|
||||
def html_agenda_1(request, num, schedule_name, template_version="meeting/agenda.html"):
|
||||
user_agent = mobile_user_agent_detect(request)
|
||||
if "iPhone" in user_agent:
|
||||
return iphone_agenda(request, num, schedule_name)
|
||||
|
||||
meeting = get_meeting(num)
|
||||
schedule = get_schedule(meeting, schedule_name)
|
||||
|
||||
timeslots, modified, meeting, area_list, wg_list = legacy_get_agenda_info(request, num, schedule)
|
||||
return HttpResponse(render_to_string(template_version,
|
||||
{"timeslots":timeslots, "modified": modified, "meeting":meeting,
|
||||
"area_list": area_list, "wg_list": wg_list ,
|
||||
"show_inline": set(["txt","htm","html"]) },
|
||||
RequestContext(request)), mimetype="text/html")
|
||||
|
||||
def html_agenda(request, num=None, schedule_name=None):
|
||||
return html_agenda_1(request, num, schedule_name, "meeting/agenda.html")
|
||||
|
||||
def html_agenda_utc(request, num=None, schedule_name=None):
|
||||
return html_agenda_1(request, num, schedule_name, "meeting/agenda_utc.html")
|
||||
|
||||
class SaveAsForm(forms.Form):
|
||||
savename = forms.CharField(max_length=100)
|
||||
|
||||
|
@ -334,8 +258,6 @@ def edit_agenda(request, num=None, schedule_name=None):
|
|||
# get_modified_from needs the query set, not the list
|
||||
modified = get_modified_from_scheduledsessions(scheduledsessions)
|
||||
|
||||
ntimeslots = get_ntimeslots_from_ss(schedule, scheduledsessions)
|
||||
|
||||
area_list = get_areas()
|
||||
wg_name_list = get_wg_name_list(scheduledsessions)
|
||||
wg_list = get_wg_list(wg_name_list)
|
||||
|
@ -675,20 +597,6 @@ def ical_agenda(request, num=None, name=None, ext=None):
|
|||
{"schedule":schedule, "assignments":assignments, "updated":updated},
|
||||
RequestContext(request)), mimetype="text/calendar")
|
||||
|
||||
def csv_agenda(request, num=None, name=None):
|
||||
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
|
||||
#wgs = IETFWG.objects.filter(status=IETFWG.ACTIVE).order_by('group_acronym__acronym')
|
||||
#rgs = IRTF.objects.all().order_by('acronym')
|
||||
#areas = Area.objects.filter(status=Area.ACTIVE).order_by('area_acronym__acronym')
|
||||
|
||||
# we should really use the Python csv module or something similar
|
||||
# rather than a template file which is one big mess
|
||||
|
||||
return HttpResponse(render_to_string("meeting/agenda.csv",
|
||||
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
|
||||
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
|
||||
RequestContext(request)), mimetype="text/csv")
|
||||
|
||||
def meeting_requests(request, num=None) :
|
||||
meeting = get_meeting(num)
|
||||
sessions = Session.objects.filter(meeting__number=meeting.number,group__parent__isnull = False).exclude(requested_by=0).order_by("group__parent__acronym","status__slug","group__acronym")
|
||||
|
|
Loading…
Reference in a new issue