checkpoint. Model changes done and UI tweaked to match.
- Legacy-Id: 9588
This commit is contained in:
parent
65f0fed7a7
commit
1e30120710
|
@ -22,8 +22,8 @@ scheduled = SessionStatusName.objects.get(slug='sched')
|
||||||
|
|
||||||
for meeting in Meeting.objects.filter(type="ietf").order_by("date"):
|
for meeting in Meeting.objects.filter(type="ietf").order_by("date"):
|
||||||
print "Checking %s schedules ..." % meeting
|
print "Checking %s schedules ..." % meeting
|
||||||
brk, __ = Session.objects.get_or_create(meeting=meeting, group=secretariat, requested_by=system, status=scheduled, name='Break', )
|
brk, __ = Session.objects.get_or_create(meeting=meeting, group=secretariat, requested_by=system, status=scheduled, name='Break', type_id='break',)
|
||||||
reg, __ = Session.objects.get_or_create(meeting=meeting, group=secretariat, requested_by=system, status=scheduled, name='Registration', )
|
reg, __ = Session.objects.get_or_create(meeting=meeting, group=secretariat, requested_by=system, status=scheduled, name='Registration', type_id='reg',)
|
||||||
|
|
||||||
for schedule in meeting.schedule_set.all():
|
for schedule in meeting.schedule_set.all():
|
||||||
print " Checking for missing Break and Reg sessions in %s" % schedule
|
print " Checking for missing Break and Reg sessions in %s" % schedule
|
||||||
|
|
|
@ -527,6 +527,7 @@ class DocTestCase(TestCase):
|
||||||
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
||||||
modified = datetime.datetime.now(),
|
modified = datetime.datetime.now(),
|
||||||
requested_by = Person.objects.get(user__username="marschairman"),
|
requested_by = Person.objects.get(user__username="marschairman"),
|
||||||
|
type_id = "session",
|
||||||
)
|
)
|
||||||
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,7 @@ class GroupMaterialTests(TestCase):
|
||||||
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
status = SessionStatusName.objects.create(slug='scheduled', name='Scheduled'),
|
||||||
modified = datetime.datetime.now(),
|
modified = datetime.datetime.now(),
|
||||||
requested_by = Person.objects.get(user__username="marschairman"),
|
requested_by = Person.objects.get(user__username="marschairman"),
|
||||||
|
type_id="session",
|
||||||
)
|
)
|
||||||
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,8 @@ AddSlotForm = modelform_factory(TimeSlot, exclude=('meeting','name','location','
|
||||||
# no authorization required to list.
|
# no authorization required to list.
|
||||||
def timeslot_slotlist(request, mtg):
|
def timeslot_slotlist(request, mtg):
|
||||||
slots = mtg.timeslot_set.all()
|
slots = mtg.timeslot_set.all()
|
||||||
|
# Restrict graphical editing to slots of type 'session' for now
|
||||||
|
slots = slots.filter(type__slug='session')
|
||||||
json_array=[]
|
json_array=[]
|
||||||
for slot in slots:
|
for slot in slots:
|
||||||
json_array.append(slot.json_dict(request.build_absolute_uri('/')))
|
json_array.append(slot.json_dict(request.build_absolute_uri('/')))
|
||||||
|
|
|
@ -85,13 +85,16 @@ def build_all_agenda_slices(meeting):
|
||||||
time_slices.sort()
|
time_slices.sort()
|
||||||
return time_slices,date_slices
|
return time_slices,date_slices
|
||||||
|
|
||||||
def get_scheduledsessions_from_schedule(schedule):
|
# Not Used
|
||||||
ss = schedule.scheduledsession_set.filter(timeslot__location__isnull = False).exclude(session__isnull = True).order_by('timeslot__time','timeslot__name','session__group__group')
|
#def get_scheduledsessions_from_schedule(schedule):
|
||||||
|
# ss = schedule.scheduledsession_set.filter(timeslot__location__isnull = False).exclude(session__isnull = True).order_by('timeslot__time','timeslot__name','session__group__group')
|
||||||
return ss
|
#
|
||||||
|
# return ss
|
||||||
|
|
||||||
def get_all_scheduledsessions_from_schedule(schedule):
|
def get_all_scheduledsessions_from_schedule(schedule):
|
||||||
ss = schedule.scheduledsession_set.filter(timeslot__location__isnull = False).order_by('timeslot__time','timeslot__name')
|
ss = schedule.scheduledsession_set.filter(timeslot__location__isnull = False)
|
||||||
|
ss = ss.filter(session__type__slug='session')
|
||||||
|
ss = ss.order_by('timeslot__time','timeslot__name')
|
||||||
|
|
||||||
return ss
|
return ss
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,10 @@ class Meeting(models.Model):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def sessions_that_can_meet(self):
|
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')
|
qs = self.session_set.exclude(status__slug='notmeet').exclude(status__slug='disappr').exclude(status__slug='deleted').exclude(status__slug='apprw')
|
||||||
|
# Restrict graphical scheduling to meeting requests (Sessions) of type 'session' for now
|
||||||
|
qs = qs.filter(type__slug='session')
|
||||||
|
return qs
|
||||||
|
|
||||||
def sessions_that_can_be_placed(self):
|
def sessions_that_can_be_placed(self):
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
@ -286,6 +289,7 @@ class Room(models.Model):
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
capacity = models.IntegerField(null=True, blank=True)
|
capacity = models.IntegerField(null=True, blank=True)
|
||||||
resources = models.ManyToManyField(ResourceAssociation, blank = True)
|
resources = models.ManyToManyField(ResourceAssociation, blank = True)
|
||||||
|
session_types = models.ManyToManyField(TimeSlotTypeName, blank = True)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return "%s size: %s" % (self.name, self.capacity)
|
return "%s size: %s" % (self.name, self.capacity)
|
||||||
|
@ -851,7 +855,8 @@ class Session(models.Model):
|
||||||
meeting = models.ForeignKey(Meeting)
|
meeting = models.ForeignKey(Meeting)
|
||||||
name = models.CharField(blank=True, max_length=255, help_text="Name of session, in case the session has a purpose rather than just being a group meeting.")
|
name = models.CharField(blank=True, max_length=255, help_text="Name of session, in case the session has a purpose rather than just being a group meeting.")
|
||||||
short = models.CharField(blank=True, max_length=32, help_text="Short version of 'name' above, for use in filenames.")
|
short = models.CharField(blank=True, max_length=32, help_text="Short version of 'name' above, for use in filenames.")
|
||||||
group = models.ForeignKey(Group) # The group type determines the session type. BOFs also need to be added as a group.
|
type = models.ForeignKey(TimeSlotTypeName)
|
||||||
|
group = models.ForeignKey(Group) # The group type historically determined the session type. BOFs also need to be added as a group. Note that not all meeting requests have a natural group to associate with.
|
||||||
attendees = models.IntegerField(null=True, blank=True)
|
attendees = models.IntegerField(null=True, blank=True)
|
||||||
agenda_note = models.CharField(blank=True, max_length=255)
|
agenda_note = models.CharField(blank=True, max_length=255)
|
||||||
requested = models.DateTimeField(default=datetime.datetime.now)
|
requested = models.DateTimeField(default=datetime.datetime.now)
|
||||||
|
@ -1007,7 +1012,13 @@ class Session(models.Model):
|
||||||
else:
|
else:
|
||||||
return "The agenda has not been uploaded yet."
|
return "The agenda has not been uploaded yet."
|
||||||
|
|
||||||
def type(self):
|
# FIXME - This used to be called 'type'. It is only used in agenda.csv and agenda.txt.
|
||||||
|
# It will return the _wrong thing_ if you look back at an agenda of an earlier meeting
|
||||||
|
# where group X was a BOF at the time, but is now a WG.
|
||||||
|
# It also doesn't return anything useful for RG, area sessions, or anything that's not group type 'wg'.
|
||||||
|
# A better thing to do is find a way to note when a meeting was a BoF meeting and use that, removing this
|
||||||
|
# function altogether.
|
||||||
|
def lame_description(self):
|
||||||
if self.group.type.slug in [ "wg" ]:
|
if self.group.type.slug in [ "wg" ]:
|
||||||
return "BOF" if self.group.state.slug in ["bof", "bof-conc"] else "WG"
|
return "BOF" if self.group.state.slug in ["bof", "bof-conc"] else "WG"
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -21,6 +21,8 @@ def make_meeting_test_data():
|
||||||
projector = ResourceAssociation.objects.create(name=pname,icon="notfound.png",desc="Basic projector")
|
projector = ResourceAssociation.objects.create(name=pname,icon="notfound.png",desc="Basic projector")
|
||||||
room = Room.objects.create(meeting=meeting, name="Test Room", capacity=123)
|
room = Room.objects.create(meeting=meeting, name="Test Room", capacity=123)
|
||||||
breakfast_room = Room.objects.create(meeting=meeting, name="Breakfast Room", capacity=40)
|
breakfast_room = Room.objects.create(meeting=meeting, name="Breakfast Room", capacity=40)
|
||||||
|
room.session_types.add("session")
|
||||||
|
breakfast_room.session_types.add("lead")
|
||||||
room.resources = [projector]
|
room.resources = [projector]
|
||||||
|
|
||||||
# mars WG
|
# mars WG
|
||||||
|
@ -30,7 +32,7 @@ def make_meeting_test_data():
|
||||||
mars_session = Session.objects.create(meeting=meeting, group=mars,
|
mars_session = Session.objects.create(meeting=meeting, group=mars,
|
||||||
attendees=10, requested_by=system_person,
|
attendees=10, requested_by=system_person,
|
||||||
requested_duration=20, status_id="schedw",
|
requested_duration=20, status_id="schedw",
|
||||||
scheduled=datetime.datetime.now())
|
scheduled=datetime.datetime.now(),type_id="session")
|
||||||
mars_session.resources = [projector]
|
mars_session.resources = [projector]
|
||||||
ScheduledSession.objects.create(timeslot=slot, session=mars_session, schedule=schedule)
|
ScheduledSession.objects.create(timeslot=slot, session=mars_session, schedule=schedule)
|
||||||
|
|
||||||
|
@ -40,7 +42,7 @@ def make_meeting_test_data():
|
||||||
ames_session = Session.objects.create(meeting=meeting, group=Group.objects.get(acronym="ames"),
|
ames_session = Session.objects.create(meeting=meeting, group=Group.objects.get(acronym="ames"),
|
||||||
attendees=10, requested_by=system_person,
|
attendees=10, requested_by=system_person,
|
||||||
requested_duration=20, status_id="schedw",
|
requested_duration=20, status_id="schedw",
|
||||||
scheduled=datetime.datetime.now())
|
scheduled=datetime.datetime.now(),type_id="session")
|
||||||
ScheduledSession.objects.create(timeslot=slot, session=ames_session, schedule=schedule)
|
ScheduledSession.objects.create(timeslot=slot, session=ames_session, schedule=schedule)
|
||||||
|
|
||||||
# IESG breakfast
|
# IESG breakfast
|
||||||
|
@ -51,7 +53,7 @@ def make_meeting_test_data():
|
||||||
name="IESG Breakfast",
|
name="IESG Breakfast",
|
||||||
attendees=25, requested_by=system_person,
|
attendees=25, requested_by=system_person,
|
||||||
requested_duration=20, status_id="schedw",
|
requested_duration=20, status_id="schedw",
|
||||||
scheduled=datetime.datetime.now())
|
scheduled=datetime.datetime.now(),type_id="lead")
|
||||||
ScheduledSession.objects.create(timeslot=breakfast_slot, session=iesg_session, schedule=schedule)
|
ScheduledSession.objects.create(timeslot=breakfast_slot, session=iesg_session, schedule=schedule)
|
||||||
|
|
||||||
meeting.agenda = schedule
|
meeting.agenda = schedule
|
||||||
|
|
|
@ -204,7 +204,7 @@ class ApiTests(TestCase):
|
||||||
r = self.client.get(url)
|
r = self.client.get(url)
|
||||||
self.assertEqual(r.status_code, 200)
|
self.assertEqual(r.status_code, 200)
|
||||||
info = json.loads(r.content)
|
info = json.loads(r.content)
|
||||||
self.assertEqual(set([x['short_name'] for x in info]),set([s.session.short_name for s in meeting.agenda.scheduledsession_set.all()]))
|
self.assertEqual(set([x['short_name'] for x in info]),set([s.session.short_name for s in meeting.agenda.scheduledsession_set.filter(session__type_id='session')]))
|
||||||
|
|
||||||
schedule = meeting.agenda
|
schedule = meeting.agenda
|
||||||
url = urlreverse("ietf.meeting.ajax.scheduledsessions_json",
|
url = urlreverse("ietf.meeting.ajax.scheduledsessions_json",
|
||||||
|
|
|
@ -261,7 +261,7 @@ def edit_agenda(request, num=None, owner=None, name=None):
|
||||||
|
|
||||||
#rooms = meeting.room_set.order_by("capacity")
|
#rooms = meeting.room_set.order_by("capacity")
|
||||||
#rooms = rooms.all()
|
#rooms = rooms.all()
|
||||||
rooms = meeting.room_set.filter(timeslot__type__slug='session').distinct().order_by("capacity")
|
rooms = meeting.room_set.filter(session_types__slug='session').distinct().order_by("capacity")
|
||||||
saveas = SaveAsForm()
|
saveas = SaveAsForm()
|
||||||
saveasurl=reverse(edit_agenda,
|
saveasurl=reverse(edit_agenda,
|
||||||
args=[meeting.number, schedule.owner_email(), schedule.name])
|
args=[meeting.number, schedule.owner_email(), schedule.name])
|
||||||
|
@ -644,7 +644,7 @@ def ical_agenda(request, num=None, name=None, ext=None):
|
||||||
|
|
||||||
def meeting_requests(request, num=None) :
|
def meeting_requests(request, num=None) :
|
||||||
meeting = get_meeting(num)
|
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")
|
sessions = Session.objects.filter(meeting__number=meeting.number, type__slug='session', group__parent__isnull = False).exclude(requested_by=0).order_by("group__parent__acronym","status__slug","group__acronym")
|
||||||
|
|
||||||
groups_not_meeting = Group.objects.filter(state='Active',type__in=['WG','RG','BOF']).exclude(acronym__in = [session.group.acronym for session in sessions]).order_by("parent__acronym","acronym")
|
groups_not_meeting = Group.objects.filter(state='Active',type__in=['WG','RG','BOF']).exclude(acronym__in = [session.group.acronym for session in sessions]).order_by("parent__acronym","acronym")
|
||||||
|
|
||||||
|
|
|
@ -105,13 +105,17 @@ def build_nonsession(meeting,schedule):
|
||||||
short=get_session(slot).short,
|
short=get_session(slot).short,
|
||||||
group=get_session(slot).group,
|
group=get_session(slot).group,
|
||||||
requested_by=system,
|
requested_by=system,
|
||||||
status_id='sched')
|
status_id='sched',
|
||||||
|
type=slot.type,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
session, __ = Session.objects.get_or_create(meeting=meeting,
|
session, __ = Session.objects.get_or_create(meeting=meeting,
|
||||||
name=slot.name,
|
name=slot.name,
|
||||||
group=secretariat,
|
group=secretariat,
|
||||||
requested_by=system,
|
requested_by=system,
|
||||||
status_id='sched')
|
status_id='sched',
|
||||||
|
type=slot.type,
|
||||||
|
)
|
||||||
session.save()
|
session.save()
|
||||||
|
|
||||||
ts = TimeSlot.objects.create(type=slot.type,
|
ts = TimeSlot.objects.create(type=slot.type,
|
||||||
|
@ -469,7 +473,9 @@ def non_session(request, meeting_id, schedule_name):
|
||||||
short=short,
|
short=short,
|
||||||
group=group,
|
group=group,
|
||||||
requested_by=Person.objects.get(name='(system)'),
|
requested_by=Person.objects.get(name='(system)'),
|
||||||
status_id='sched')
|
status_id='sched',
|
||||||
|
type=type,
|
||||||
|
)
|
||||||
session.save()
|
session.save()
|
||||||
|
|
||||||
# create association
|
# create association
|
||||||
|
|
|
@ -75,7 +75,7 @@ class BluesheetTestCase(TestCase):
|
||||||
make_test_data()
|
make_test_data()
|
||||||
meeting = Meeting.objects.filter(type='interim').first()
|
meeting = Meeting.objects.filter(type='interim').first()
|
||||||
group = Group.objects.get(acronym='mars')
|
group = Group.objects.get(acronym='mars')
|
||||||
Session.objects.create(meeting=meeting,group=group,requested_by_id=1,status_id='sched')
|
Session.objects.create(meeting=meeting,group=group,requested_by_id=1,status_id='sched',type_id='session')
|
||||||
url = reverse('proceedings_upload_unified', kwargs={'meeting_num':meeting.number,'acronym':'mars'})
|
url = reverse('proceedings_upload_unified', kwargs={'meeting_num':meeting.number,'acronym':'mars'})
|
||||||
upfile = StringIO('dummy file')
|
upfile = StringIO('dummy file')
|
||||||
upfile.name = "scan1.pdf"
|
upfile.name = "scan1.pdf"
|
||||||
|
|
|
@ -438,7 +438,9 @@ def interim(request, acronym):
|
||||||
Session.objects.create(meeting=meeting,
|
Session.objects.create(meeting=meeting,
|
||||||
group=group,
|
group=group,
|
||||||
requested_by=request.user.person,
|
requested_by=request.user.person,
|
||||||
status_id='sched')
|
status_id='sched',
|
||||||
|
type_id='session',
|
||||||
|
)
|
||||||
|
|
||||||
create_interim_directory()
|
create_interim_directory()
|
||||||
make_directories(meeting)
|
make_directories(meeting)
|
||||||
|
|
|
@ -270,7 +270,9 @@ def confirm(request, acronym):
|
||||||
requested_by=login,
|
requested_by=login,
|
||||||
requested_duration=datetime.timedelta(0,int(duration)),
|
requested_duration=datetime.timedelta(0,int(duration)),
|
||||||
comments=form['comments'],
|
comments=form['comments'],
|
||||||
status=SessionStatusName.objects.get(slug=slug))
|
status=SessionStatusName.objects.get(slug=slug),
|
||||||
|
type_id='session',
|
||||||
|
)
|
||||||
session_save(new_session)
|
session_save(new_session)
|
||||||
if 'resources' in form:
|
if 'resources' in form:
|
||||||
new_session.resources = form['resources']
|
new_session.resources = form['resources']
|
||||||
|
@ -383,7 +385,9 @@ def edit_mtg(request, num, acronym):
|
||||||
requested_by=login,
|
requested_by=login,
|
||||||
requested_duration=duration,
|
requested_duration=duration,
|
||||||
comments=form.cleaned_data['comments'],
|
comments=form.cleaned_data['comments'],
|
||||||
status=SessionStatusName.objects.get(slug='schedw'))
|
status=SessionStatusName.objects.get(slug='schedw'),
|
||||||
|
type_id='session',
|
||||||
|
)
|
||||||
new_session.save()
|
new_session.save()
|
||||||
else:
|
else:
|
||||||
duration = datetime.timedelta(0,int(form.cleaned_data['length_session2']))
|
duration = datetime.timedelta(0,int(form.cleaned_data['length_session2']))
|
||||||
|
@ -405,7 +409,9 @@ def edit_mtg(request, num, acronym):
|
||||||
requested_by=login,
|
requested_by=login,
|
||||||
requested_duration=duration,
|
requested_duration=duration,
|
||||||
comments=form.cleaned_data['comments'],
|
comments=form.cleaned_data['comments'],
|
||||||
status=SessionStatusName.objects.get(slug='apprw'))
|
status=SessionStatusName.objects.get(slug='apprw'),
|
||||||
|
type_id='session',
|
||||||
|
)
|
||||||
new_session.save()
|
new_session.save()
|
||||||
else:
|
else:
|
||||||
duration = datetime.timedelta(0,int(form.cleaned_data['length_session3']))
|
duration = datetime.timedelta(0,int(form.cleaned_data['length_session3']))
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
{% endif %}{% if item.timeslot.type.slug == "reg" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.timeslot.type.name }}","{{ schedule.meeting.reg_area }}","","","","{{ item.timeslot.name }}","r{{item.timeslot.pk}}","",""
|
{% endif %}{% if item.timeslot.type.slug == "reg" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.timeslot.type.name }}","{{ schedule.meeting.reg_area }}","","","","{{ item.timeslot.name }}","r{{item.timeslot.pk}}","",""
|
||||||
{% endif %}{% if item.timeslot.type.slug == "other" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","None","{{ item.timeslot.location.name }}","","{{ item.session.group.acronym }}","{% if item.session.group.parent %}{{item.session.group.parent.acronym|upper}}{% endif %}","{{ item.session.name }}","{{item.session.pk}}","",""
|
{% endif %}{% if item.timeslot.type.slug == "other" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","None","{{ item.timeslot.location.name }}","","{{ item.session.group.acronym }}","{% if item.session.group.parent %}{{item.session.group.parent.acronym|upper}}{% endif %}","{{ item.session.name }}","{{item.session.pk}}","",""
|
||||||
{% endif %}{% if item.timeslot.type.slug == "plenary" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.session.name }}","{{ item.timeslot.location.name }}","","{{ item.session.group.acronym }}","","{{ item.session.name }}","{{item.session.pk}}","{% if item.session.agenda %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/agenda/{{ item.session.agenda.external_url }}{% endif %}","{% if item.session.slides %}{% for slide in item.session.slides %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/slides/{{ slide.external_url }}{% if not forloop.last %}|{% endif %}{% endfor %}{% endif %}"
|
{% endif %}{% if item.timeslot.type.slug == "plenary" %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.session.name }}","{{ item.timeslot.location.name }}","","{{ item.session.group.acronym }}","","{{ item.session.name }}","{{item.session.pk}}","{% if item.session.agenda %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/agenda/{{ item.session.agenda.external_url }}{% endif %}","{% if item.session.slides %}{% for slide in item.session.slides %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/slides/{{ slide.external_url }}{% if not forloop.last %}|{% endif %}{% endfor %}{% endif %}"
|
||||||
{% endif %}{% if item.timeslot.type.slug == "session" and item.session.group %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.timeslot.name }}","{{ item.timeslot.location.name }}","{{ item.session.group.parent.acronym|upper }}","{{ item.session.group.acronym }}","{{ item.session.type }}","{{ item.session.group.name }}","{{ item.session.pk}}","{% if item.session.agenda %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/agenda/{{ item.session.agenda.external_url }}{% endif %}","{% if item.session.slides %}{% for slide in item.session.slides %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/slides/{{ slide.external_url }}{% if not forloop.last %}|{% endif %}{% endfor %}{% endif %}"
|
{% endif %}{% if item.timeslot.type.slug == "session" and item.session.group %}"{{ item.timeslot.time|date:"Y-m-d" }}","{{ item.timeslot.time_desc|slice:":4" }}","{{ item.timeslot.time_desc|slice:"5:9" }}","{{ item.timeslot.name }}","{{ item.timeslot.location.name }}","{{ item.session.group.parent.acronym|upper }}","{{ item.session.group.acronym }}","{{ item.session.lame_description }}","{{ item.session.group.name }}","{{ item.session.pk}}","{% if item.session.agenda %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/agenda/{{ item.session.agenda.external_url }}{% endif %}","{% if item.session.slides %}{% for slide in item.session.slides %}http://www.ietf.org/proceedings/{{ schedule.meeting.number }}/slides/{{ slide.external_url }}{% if not forloop.last %}|{% endif %}{% endfor %}{% endif %}"
|
||||||
{% endif %}{% endfor %}{% endautoescape %}
|
{% endif %}{% endfor %}{% endautoescape %}
|
||||||
|
|
Can't render this file because it contains an unexpected character in line 1 and column 63.
|
|
@ -20,7 +20,7 @@
|
||||||
{% endif %}{% if item.timeslot.type.slug == "session" %}{% if item.session.group %}{% ifchanged %}
|
{% endif %}{% if item.timeslot.type.slug == "session" %}{% if item.session.group %}{% ifchanged %}
|
||||||
|
|
||||||
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}
|
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}
|
||||||
{% endifchanged %}{{ item.timeslot.location.name|ljust:14 }} {{ item.session.group.parent.acronym|upper|ljust:4 }} {{ item.session.group.acronym|ljust:10 }} {{ item.session.group.name }} {{ item.session.type }}{% if item.session.agenda_note %} - {{ item.session.agenda_note }}{% endif %}
|
{% endifchanged %}{{ item.timeslot.location.name|ljust:14 }} {{ item.session.group.parent.acronym|upper|ljust:4 }} {{ item.session.group.acronym|ljust:10 }} {{ item.session.group.name }} {{ item.session.lame_description }}{% if item.session.agenda_note %} - {{ item.session.agenda_note }}{% endif %}
|
||||||
{% endif %}{% endif %}{% if item.timeslot.type.slug == "break" %}
|
{% endif %}{% endif %}{% if item.timeslot.type.slug == "break" %}
|
||||||
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}{% if schedule.meeting.break_area and item.timeslot.show_location %} - {{ schedule.meeting.break_area }}{% endif %}{% endif %}{% if item.timeslot.type.slug == "other" %}
|
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}{% if schedule.meeting.break_area and item.timeslot.show_location %} - {{ schedule.meeting.break_area }}{% endif %}{% endif %}{% if item.timeslot.type.slug == "other" %}
|
||||||
{{ item.timeslot.time_desc }} {{ item.timeslot.name }} - {{ item.timeslot.location.name }}{% endif %}{% endfor %}
|
{{ item.timeslot.time_desc }} {{ item.timeslot.name }} - {{ item.timeslot.location.name }}{% endif %}{% endfor %}
|
||||||
|
|
|
@ -71,6 +71,7 @@
|
||||||
background-color:#2647A0;
|
background-color:#2647A0;
|
||||||
width:100px; /* otherwise we get overlap */
|
width:100px; /* otherwise we get overlap */
|
||||||
min-width:100px;
|
min-width:100px;
|
||||||
|
min-height:40px;
|
||||||
font-size:12px;
|
font-size:12px;
|
||||||
position:absolute; /* makes it float independent of scroll */
|
position:absolute; /* makes it float independent of scroll */
|
||||||
z-index:100; /* meeting events will be on top otherwise */
|
z-index:100; /* meeting events will be on top otherwise */
|
||||||
|
@ -244,7 +245,7 @@ tr.agenda_slot{
|
||||||
td.agenda_slot{
|
td.agenda_slot{
|
||||||
/* overflow-y:auto; */
|
/* overflow-y:auto; */
|
||||||
/* height:20px; */
|
/* height:20px; */
|
||||||
height: 40px;
|
height: 45px;
|
||||||
/* min-height:20px; */
|
/* min-height:20px; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue