Renamed model .url() methods to .json_url() or .base_url(), depending on function. Replaced the use of custom django method request.get_host_protocol() with standard request.build_absolute_uri(). Removed an uncaught Http403 exception. Fixed a typo /venus_addr/venue_addr/. Removed relurl() methods; no longer needed. Removed some debug functions.
- Legacy-Id: 6309
This commit is contained in:
parent
127deda3c7
commit
083f60dd93
|
@ -16,8 +16,8 @@ log = logging.getLogger(__name__)
|
|||
def group_json(request, groupname):
|
||||
group = get_object_or_404(Group, acronym=groupname)
|
||||
|
||||
#print "group request is: %s\n" % (request.get_host_protocol())
|
||||
return HttpResponse(json.dumps(group.json_dict(request.get_host_protocol()),
|
||||
#print "group request is: %s\n" % (request.build_absolute_uri('/'))
|
||||
return HttpResponse(json.dumps(group.json_dict(request.build_absolute_uri('/')),
|
||||
sort_keys=True, indent=2),
|
||||
mimetype="text/json")
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
# Copyright The IETF Trust 2007, All Rights Reserved
|
||||
|
||||
from urlparse import urljoin
|
||||
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
|
||||
|
@ -8,7 +10,8 @@ from ietf.person.models import Email, Person
|
|||
from ietf.group.colors import fg_group_colors, bg_group_colors
|
||||
|
||||
import datetime
|
||||
|
||||
import debug
|
||||
|
||||
class GroupInfo(models.Model):
|
||||
time = models.DateTimeField(default=datetime.datetime.now)
|
||||
name = models.CharField(max_length=80)
|
||||
|
@ -88,20 +91,20 @@ class Group(GroupInfo):
|
|||
def bg_color(self):
|
||||
return bg_group_colors[self.upcase_acronym]
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/group/%s.json" % (sitefqdn, self.acronym)
|
||||
def json_url(self):
|
||||
return "/group/%s.json" % (self.acronym,)
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
group1= dict()
|
||||
group1['href'] = self.url(sitefqdn)
|
||||
group1['href'] = urljoin(host_scheme, self.json_url())
|
||||
group1['acronym'] = self.acronym
|
||||
group1['name'] = self.name
|
||||
group1['state'] = self.state.slug
|
||||
group1['type'] = self.type.slug
|
||||
group1['parent_href'] = self.parent.url(sitefqdn)
|
||||
group1['parent_href'] = urljoin(host_scheme, self.parent.json_url())
|
||||
# uncomment when people URL handle is created
|
||||
#if self.ad is not None:
|
||||
# group1['ad_href'] = self.ad.url(sitefqdn)
|
||||
# group1['ad_href'] = urljoin(host_scheme, self.ad.url())
|
||||
group1['list_email'] = self.list_email
|
||||
group1['list_subscribe'] = self.list_subscribe
|
||||
group1['list_archive'] = self.list_archive
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from urlparse import urljoin
|
||||
|
||||
from django.utils import simplejson as json
|
||||
from dajaxice.core import dajaxice_functions
|
||||
from dajaxice.decorators import dajaxice_register
|
||||
|
@ -8,7 +10,7 @@ from django.shortcuts import get_object_or_404
|
|||
|
||||
from ietf.ietfauth.decorators import group_required, has_role
|
||||
from ietf.name.models import TimeSlotTypeName
|
||||
from django.http import HttpResponseRedirect, HttpResponse, Http404, QueryDict, Http403
|
||||
from django.http import HttpResponseRedirect, HttpResponse, Http404, QueryDict
|
||||
|
||||
from ietf.meeting.helpers import get_meeting, get_schedule, get_schedule_by_id, agenda_permissions
|
||||
from ietf.meeting.views import edit_timeslots, edit_agenda
|
||||
|
@ -56,7 +58,7 @@ def readonly(request, meeting_num, schedule_id):
|
|||
return json.dumps(
|
||||
{'secretariat': secretariat,
|
||||
'write_perm': write_perm,
|
||||
'owner_href': schedule.owner.url(request.get_host_protocol()),
|
||||
'owner_href': request.build_absolute_uri(schedule.owner.json_url()),
|
||||
'read_only': read_only})
|
||||
|
||||
@group_required('Area Director','Secretariat')
|
||||
|
@ -73,7 +75,7 @@ def update_timeslot(request, schedule_id, session_id, scheduledsession_id=None,
|
|||
cansee,canedit = agenda_permissions(meeting, schedule, request.user)
|
||||
|
||||
if not canedit:
|
||||
raise Http403
|
||||
#raise Exception("Not permitted")
|
||||
return json.dumps({'error':'no permission'})
|
||||
|
||||
session_id = int(session_id)
|
||||
|
@ -136,7 +138,7 @@ def update_timeslot_purpose(request, timeslot_id=None, purpose=None):
|
|||
timeslot.type = timeslottypename
|
||||
timeslot.save()
|
||||
|
||||
return json.dumps(timeslot.json_dict(request.get_host_protocol))
|
||||
return json.dumps(timeslot.json_dict(request.build_absolute_uri('/')))
|
||||
|
||||
#############################################################################
|
||||
## ROOM API
|
||||
|
@ -149,7 +151,7 @@ def timeslot_roomlist(request, mtg):
|
|||
rooms = mtg.room_set.all()
|
||||
json_array=[]
|
||||
for room in rooms:
|
||||
json_array.append(room.json_dict(request.get_host_protocol))
|
||||
json_array.append(room.json_dict(request.build_absolute_uri('/')))
|
||||
return HttpResponse(json.dumps(json_array),
|
||||
mimetype="application/json")
|
||||
|
||||
|
@ -199,7 +201,7 @@ def timeslot_roomurl(request, num=None, roomid=None):
|
|||
|
||||
if request.method == 'GET':
|
||||
room = get_object_or_404(meeting.room_set, pk=roomid)
|
||||
return HttpResponse(json.dumps(room.json_dict(request.get_host_protocol())),
|
||||
return HttpResponse(json.dumps(room.json_dict(request.build_absolute_uri('/'))),
|
||||
mimetype="application/json")
|
||||
elif request.method == 'PUT':
|
||||
return timeslot_updroom(request, meeting)
|
||||
|
@ -216,7 +218,7 @@ def timeslot_slotlist(request, mtg):
|
|||
slots = mtg.timeslot_set.all()
|
||||
json_array=[]
|
||||
for slot in slots:
|
||||
json_array.append(slot.json_dict(request.get_host_protocol()))
|
||||
json_array.append(slot.json_dict(request.build_absolute_uri('/')))
|
||||
return HttpResponse(json.dumps(json_array),
|
||||
mimetype="application/json")
|
||||
|
||||
|
@ -267,7 +269,7 @@ def timeslot_sloturl(request, num=None, slotid=None):
|
|||
|
||||
if request.method == 'GET':
|
||||
slot = get_object_or_404(meeting.timeslot_set, pk=slotid)
|
||||
return HttpResponse(json.dumps(slot.json_dict(request.get_host_protocol())),
|
||||
return HttpResponse(json.dumps(slot.json_dict(request.build_absolute_uri('/'))),
|
||||
mimetype="application/json")
|
||||
elif request.method == 'PUT':
|
||||
# not yet implemented!
|
||||
|
@ -287,7 +289,7 @@ def agenda_list(request, mtg):
|
|||
agendas = mtg.schedule_set.all()
|
||||
json_array=[]
|
||||
for agenda in agendas:
|
||||
json_array.append(agenda.json_dict(request.get_host_protocol))
|
||||
json_array.append(agenda.json_dict(request.build_absolute_uri('/')))
|
||||
return HttpResponse(json.dumps(json_array),
|
||||
mimetype="application/json")
|
||||
|
||||
|
@ -355,7 +357,7 @@ def agenda_update(request, meeting, schedule):
|
|||
meeting.save()
|
||||
|
||||
if "HTTP_ACCEPT" in request.META and "application/json" in request.META['HTTP_ACCEPT']:
|
||||
return HttpResponse(json.dumps(schedule.json_dict(request.get_host_protocol())),
|
||||
return HttpResponse(json.dumps(schedule.json_dict(request.build_absolute_uri('/'))),
|
||||
mimetype="application/json")
|
||||
else:
|
||||
return HttpResponseRedirect(
|
||||
|
@ -390,7 +392,7 @@ def agenda_infourl(request, num=None, schedule_name=None):
|
|||
#log.debug("results in agenda: %u / %s" % (schedule.id, request.method))
|
||||
|
||||
if request.method == 'GET':
|
||||
return HttpResponse(json.dumps(schedule.json_dict(request.get_host_protocol())),
|
||||
return HttpResponse(json.dumps(schedule.json_dict(request.build_absolute_uri('/'))),
|
||||
mimetype="application/json")
|
||||
elif request.method == 'PUT':
|
||||
return agenda_update(request, meeting, schedule)
|
||||
|
@ -404,7 +406,7 @@ def agenda_infourl(request, num=None, schedule_name=None):
|
|||
#############################################################################
|
||||
|
||||
def meeting_get(request, meeting):
|
||||
return HttpResponse(json.dumps(meeting.json_dict(request.get_host_protocol()),
|
||||
return HttpResponse(json.dumps(meeting.json_dict(request.build_absolute_uri('/')),
|
||||
sort_keys=True, indent=2),
|
||||
mimetype="application/json")
|
||||
|
||||
|
@ -458,7 +460,7 @@ def session_json(request, num, sessionid):
|
|||
except Session.DoesNotExist:
|
||||
return json.dumps({'error':"no such session %s" % sessionid})
|
||||
|
||||
sess1 = session.json_dict(request.get_host_protocol())
|
||||
sess1 = session.json_dict(request.build_absolute_uri('/'))
|
||||
return HttpResponse(json.dumps(sess1, sort_keys=True, indent=2),
|
||||
mimetype="application/json")
|
||||
|
||||
|
@ -473,7 +475,7 @@ def session_constraints(request, num, sessionid):
|
|||
except Session.DoesNotExist:
|
||||
return json.dumps({"error":"no such session"})
|
||||
|
||||
constraint_list = session.constraints_dict(request.get_host_protocol())
|
||||
constraint_list = session.constraints_dict(request.build_absolute_uri('/'))
|
||||
|
||||
json_str = json.dumps(constraint_list,
|
||||
sort_keys=True, indent=2),
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# old meeting models can be found in ../proceedings/models.py
|
||||
|
||||
import pytz, datetime
|
||||
from urlparse import urljoin
|
||||
import copy
|
||||
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
|
@ -110,21 +112,20 @@ class Meeting(models.Model):
|
|||
return qs[0]
|
||||
return None
|
||||
|
||||
def url(self, sitefqdn, exten=".json"):
|
||||
return "%s/meeting/%s%s" % (sitefqdn, self.number, exten)
|
||||
def json_url(self):
|
||||
return "/meeting/%s.json" % (self.number, )
|
||||
|
||||
@property
|
||||
def relurl(self):
|
||||
return self.url("")
|
||||
def base_url(self):
|
||||
return "/meeting/%s" % (self.number, )
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
# unfortunately, using the datetime aware json encoder seems impossible,
|
||||
# so the dates are formatted as strings here.
|
||||
agenda_url = ""
|
||||
if self.agenda:
|
||||
agenda_url = self.agenda.url(sitefqdn)
|
||||
agenda_url = urljoin(host_scheme, self.agenda.base_url())
|
||||
return {
|
||||
'href': self.url(sitefqdn),
|
||||
'href': urljoin(host_scheme, self.base_url()),
|
||||
'name': self.number,
|
||||
'submission_start_date': fmt_date(self.get_submission_start_date()),
|
||||
'submission_cut_off_date': fmt_date(self.get_submission_cut_off_date()),
|
||||
|
@ -135,7 +136,7 @@ class Meeting(models.Model):
|
|||
'country': self.country,
|
||||
'time_zone': self.time_zone,
|
||||
'venue_name': self.venue_name,
|
||||
'venus_addr': self.venue_addr,
|
||||
'venue_addr': self.venue_addr,
|
||||
'break_area': self.break_area,
|
||||
'reg_area': self.reg_area
|
||||
}
|
||||
|
@ -205,16 +206,12 @@ class Room(models.Model):
|
|||
duration=ts.duration)
|
||||
self.meeting.create_all_timeslots()
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/meeting/%s/room/%s.json" % (sitefqdn, self.meeting.number, self.id)
|
||||
def json_url(self):
|
||||
return "/meeting/%s/room/%s.json" % (self.meeting.number, self.id)
|
||||
|
||||
@property
|
||||
def relurl(self):
|
||||
return self.url("")
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
return {
|
||||
'href': self.url(sitefqdn),
|
||||
'href': urljoin(host_scheme, self.json_url()),
|
||||
'name': self.name,
|
||||
'capacity': self.capacity,
|
||||
}
|
||||
|
@ -363,12 +360,8 @@ class TimeSlot(models.Model):
|
|||
ts["domid"] = self.js_identifier
|
||||
return ts
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/meeting/%s/timeslot/%s.json" % (sitefqdn, self.meeting.number, self.id)
|
||||
|
||||
@property
|
||||
def relurl(self):
|
||||
return self.url("")
|
||||
def json_url(self):
|
||||
return "/meeting/%s/timeslot/%s.json" % (self.meeting.number, self.id)
|
||||
|
||||
|
||||
"""
|
||||
|
@ -377,12 +370,14 @@ class TimeSlot(models.Model):
|
|||
rooms.
|
||||
"""
|
||||
def create_concurrent_timeslots(self):
|
||||
ts = self
|
||||
for room in self.meeting.room_set.all():
|
||||
rooms = self.meeting.room_set.all()
|
||||
self.room = rooms[0]
|
||||
self.save()
|
||||
for room in rooms[1:]:
|
||||
ts = copy.copy(self)
|
||||
ts.id = None
|
||||
ts.location = room
|
||||
ts.save()
|
||||
# this is simplest way to "clone" an object...
|
||||
ts.id = None
|
||||
self.meeting.create_all_timeslots()
|
||||
|
||||
"""
|
||||
|
@ -438,19 +433,11 @@ class Schedule(models.Model):
|
|||
def __unicode__(self):
|
||||
return u"%s:%s(%s)" % (self.meeting, self.name, self.owner)
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/meeting/%s/agenda/%s" % (sitefqdn, self.meeting.number, self.name)
|
||||
def base_url(self):
|
||||
return "/meeting/%s/agenda/%s" % (self.meeting.number, self.name)
|
||||
|
||||
@property
|
||||
def relurl(self):
|
||||
return self.url("")
|
||||
|
||||
def url_edit(self, sitefqdn):
|
||||
return "%s/meeting/%s/agenda/%s/edit" % (sitefqdn, self.meeting.number, self.name)
|
||||
|
||||
@property
|
||||
def relurl_edit(self):
|
||||
return self.url_edit("")
|
||||
def url_edit(self):
|
||||
return "/meeting/%s/agenda/%s/edit" % (self.meeting.number, self.name)
|
||||
|
||||
@property
|
||||
def visible_token(self):
|
||||
|
@ -489,14 +476,14 @@ class Schedule(models.Model):
|
|||
|
||||
# I'm loath to put calls to reverse() in there.
|
||||
# is there a better way?
|
||||
def url(self, sitefqdn):
|
||||
def json_url(self):
|
||||
# XXX need to include owner.
|
||||
return "%s/meeting/%s/agendas/%s.json" % (sitefqdn, self.meeting.number, self.name)
|
||||
return "/meeting/%s/agendas/%s.json" % (self.meeting.number, self.name)
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
sch = dict()
|
||||
sch['schedule_id'] = self.id
|
||||
sch['href'] = self.url(sitefqdn)
|
||||
sch['href'] = urljoin(host_scheme, self.json_url())
|
||||
if self.visible:
|
||||
sch['visible'] = "visible"
|
||||
else:
|
||||
|
@ -505,7 +492,7 @@ class Schedule(models.Model):
|
|||
sch['public'] = "public"
|
||||
else:
|
||||
sch['public'] = "private"
|
||||
sch['owner'] = self.owner.url(sitefqdn)
|
||||
sch['owner'] = urljoin(host_scheme, self.owner.json_url())
|
||||
# should include href to list of scheduledsessions, but they have no direct API yet.
|
||||
return sch
|
||||
|
||||
|
@ -631,7 +618,7 @@ class ScheduledSession(models.Model):
|
|||
def json_dict(self, selfurl):
|
||||
ss = dict()
|
||||
ss['scheduledsession_id'] = self.id
|
||||
#ss['href'] = self.url(sitefqdn)
|
||||
#ss['href'] = self.url(host_scheme)
|
||||
ss['empty'] = self.empty_str
|
||||
ss['timeslot_id'] = self.timeslot.id
|
||||
if self.session:
|
||||
|
@ -664,21 +651,21 @@ class Constraint(models.Model):
|
|||
def __unicode__(self):
|
||||
return u"%s %s %s" % (self.source, self.name.name.lower(), self.target)
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/meeting/%s/constraint/%s.json" % (sitefqdn, self.meeting.number, self.id)
|
||||
def json_url(self):
|
||||
return "/meeting/%s/constraint/%s.json" % (self.meeting.number, self.id)
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
ct1 = dict()
|
||||
ct1['constraint_id'] = self.id
|
||||
ct1['href'] = self.url(sitefqdn)
|
||||
ct1['href'] = urljoin(host_scheme, self.json_url())
|
||||
ct1['name'] = self.name.slug
|
||||
if self.person is not None:
|
||||
ct1['person_href'] = self.person.url(sitefqdn)
|
||||
ct1['person_href'] = urljoin(host_scheme, self.person.json_url())
|
||||
if self.source is not None:
|
||||
ct1['source_href'] = self.source.url(sitefqdn)
|
||||
ct1['source_href'] = urljoin(host_scheme, self.source.json_url())
|
||||
if self.target is not None:
|
||||
ct1['target_href'] = self.target.url(sitefqdn)
|
||||
ct1['meeting_href'] = self.meeting.url(sitefqdn)
|
||||
ct1['target_href'] = urljoin(host_scheme, self.target.json_url())
|
||||
ct1['meeting_href'] = urljoin(host_scheme, self.meeting.json_url())
|
||||
return ct1
|
||||
|
||||
|
||||
|
@ -763,24 +750,24 @@ class Session(models.Model):
|
|||
def official_scheduledsession(self):
|
||||
return self.scheduledsession_for_agenda(self.meeting.agenda)
|
||||
|
||||
def constraints_dict(self, sitefqdn):
|
||||
def constraints_dict(self, host_scheme):
|
||||
constraint_list = []
|
||||
for constraint in self.group.constraint_source_set.filter(meeting=self.meeting):
|
||||
ct1 = constraint.json_dict(sitefqdn)
|
||||
ct1 = constraint.json_dict(host_scheme)
|
||||
constraint_list.append(ct1)
|
||||
|
||||
for constraint in self.group.constraint_target_set.filter(meeting=self.meeting):
|
||||
ct1 = constraint.json_dict(sitefqdn)
|
||||
ct1 = constraint.json_dict(host_scheme)
|
||||
constraint_list.append(ct1)
|
||||
return constraint_list
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/meeting/%s/session/%s.json" % (sitefqdn, self.meeting.number, self.id)
|
||||
def json_url(self):
|
||||
return "/meeting/%s/session/%s.json" % (self.meeting.number, self.id)
|
||||
|
||||
def json_dict(self, sitefqdn):
|
||||
def json_dict(self, host_scheme):
|
||||
sess1 = dict()
|
||||
sess1['href'] = self.url(sitefqdn)
|
||||
sess1['group_href'] = self.group.url(sitefqdn)
|
||||
sess1['href'] = urljoin(host_scheme, self.json_url())
|
||||
sess1['group_href'] = urljoin(host_scheme, self.group.json_url())
|
||||
sess1['group_acronym'] = str(self.group.acronym)
|
||||
sess1['name'] = str(self.name)
|
||||
sess1['short_name'] = str(self.name)
|
||||
|
|
|
@ -46,8 +46,7 @@ from ietf.meeting.helpers import get_areas, get_area_list_from_sessions, get_pse
|
|||
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
|
||||
from ietf.meeting.helpers import get_wg_list, session_draft_list
|
||||
from ietf.meeting.helpers import get_meeting, get_schedule, read_agenda_file, agenda_permissions
|
||||
from ietf.meeting.helpers import get_wg_list, get_meeting, get_schedule, agenda_permissions
|
||||
|
||||
|
||||
@decorator_from_middleware(GZipMiddleware)
|
||||
|
@ -240,8 +239,8 @@ def edit_timeslots(request, num=None):
|
|||
|
||||
time_slices,date_slices,slots = meeting.build_timeslices()
|
||||
|
||||
meeting_base_url = meeting.url(request.get_host_protocol(), "")
|
||||
site_base_url =request.get_host_protocol()
|
||||
meeting_base_url = request.build_absolute_uri(meeting.base_url())
|
||||
site_base_url =request.build_absolute_uri('/')
|
||||
rooms = meeting.room_set.order_by("capacity")
|
||||
rooms = rooms.all()
|
||||
|
||||
|
@ -289,8 +288,8 @@ def edit_agenda(request, num=None, schedule_name=None):
|
|||
schedule = get_schedule(meeting, schedule_name)
|
||||
#sys.stdout.write("2 requestor: %u for sched owned by: %u \n" % ( requestor.id, schedule.owner.id ))
|
||||
|
||||
meeting_base_url = meeting.url(request.get_host_protocol(), "")
|
||||
site_base_url =request.get_host_protocol()
|
||||
meeting_base_url = request.build_absolute_uri(meeting.base_url())
|
||||
site_base_url =request.build_absolute_uri('/')
|
||||
rooms = meeting.room_set.order_by("capacity")
|
||||
rooms = rooms.all()
|
||||
saveas = SaveAsForm()
|
||||
|
@ -380,7 +379,6 @@ def edit_agendas(request, num=None, order=None):
|
|||
|
||||
return HttpResponse(render_to_string("meeting/agenda_list.html",
|
||||
{"meeting": meeting,
|
||||
"sitefqdn": request.get_host_protocol(),
|
||||
"schedules": schedules.all()
|
||||
},
|
||||
RequestContext(request)),
|
||||
|
@ -615,20 +613,6 @@ def session_draft_pdf(request, num, session):
|
|||
os.unlink(pdfn)
|
||||
return HttpResponse(pdf_contents, mimetype="application/pdf")
|
||||
|
||||
def get_meeting(num=None):
|
||||
if (num == None):
|
||||
meeting = Meeting.objects.filter(type="ietf").order_by("-date")[:1].get()
|
||||
else:
|
||||
meeting = get_object_or_404(Meeting, number=num)
|
||||
return meeting
|
||||
|
||||
def get_schedule(meeting, name=None):
|
||||
if name is None:
|
||||
schedule = meeting.agenda
|
||||
else:
|
||||
schedule = get_object_or_404(meeting.schedule_set, name=name)
|
||||
return schedule
|
||||
|
||||
def week_view(request, num=None):
|
||||
meeting = get_meeting(num)
|
||||
timeslots = TimeSlot.objects.filter(meeting__id = meeting.id)
|
||||
|
@ -681,9 +665,7 @@ def ical_agenda(request, num=None, schedule_name=None):
|
|||
tzfn = os.path.join(settings.TZDATA_ICS_PATH, meeting.time_zone + ".ics")
|
||||
tzf = open(tzfn)
|
||||
icstext = tzf.read()
|
||||
debug.show('icstext[:128]')
|
||||
vtimezone = re.search("(?sm)(\nBEGIN:VTIMEZONE.*\nEND:VTIMEZONE\n)", icstext).group(1).strip()
|
||||
debug.show('vtimezone[:128]')
|
||||
tzf.close()
|
||||
except IOError:
|
||||
vtimezone = None
|
||||
|
|
|
@ -92,14 +92,14 @@ class Person(PersonInfo):
|
|||
def person(self): # little temporary wrapper to help porting to new schema
|
||||
return self
|
||||
|
||||
def url(self, sitefqdn):
|
||||
return "%s/people/%s.json" % (sitefqdn, self.id)
|
||||
def json_url(self):
|
||||
return "/person/%s.json" % (self.id, )
|
||||
|
||||
# person json not yet implemented
|
||||
#def json_dict(self, sitefqdn):
|
||||
#def json_dict(self, host_scheme):
|
||||
# ct1 = dict()
|
||||
# ct1['person_id'] = self.id
|
||||
# ct1['href'] = self.url(sitefqdn)
|
||||
# ct1['href'] = self.url(host_scheme)
|
||||
# ct1['name'] = self.name
|
||||
# ct1['ascii'] = self.ascii
|
||||
# ct1['affliation']= self.affliation
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<
|
||||
</div>
|
||||
|
||||
<div href="{{ meeting.relurl }}" class="agenda_list_title">
|
||||
<div href="{{ meeting.json_url }}" class="agenda_list_title">
|
||||
<p>Meeting {{meeting.number}}</p>
|
||||
</div>
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
|||
<th>Public</th>
|
||||
</tr>
|
||||
{% for agenda in schedules %}
|
||||
<tr agenda_name="{{agenda.name}}" id="agenda_name_{{agenda.name|slugify}}" href="{{agenda|args:sitefqdn|call:"url"}}" class="{{agenda.official_class}}_row">
|
||||
<tr agenda_name="{{agenda.name}}" id="agenda_name_{{agenda.name|slugify}}" href="{{agenda.base_url}}" class="{{agenda.official_class}}_row">
|
||||
<td class="agenda_mark agenda_data"> <span class="styled_button agenda_official_mark {{agenda.official_class}}">{{ agenda.official_token }}</span></td>
|
||||
<td class="agenda_data"> <span class="agenda_owner">{{ agenda.owner }}</span> </td>
|
||||
<td class="agenda_data">
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<
|
||||
</div>
|
||||
|
||||
<div href="{{ meeting.relurl }}" class="agenda_list_title">
|
||||
<div href="{{ meeting.json_url }}" class="agenda_list_title">
|
||||
<p>Meeting {{meeting.number}}</p>
|
||||
</div>
|
||||
|
||||
|
@ -50,7 +50,7 @@
|
|||
</td></tr></table>
|
||||
</div>
|
||||
|
||||
<form action="{{schedule.relurl}}" method="PUT">
|
||||
<form action="{{schedule.json_url}}" method="PUT">
|
||||
<fieldset>
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
|
|
|
@ -102,7 +102,7 @@ function setup_slots(){
|
|||
{% for slot in slot_slices|lookup:day %}
|
||||
<th class="day_{{day}} room_title">
|
||||
<div
|
||||
href="{{slot.relurl}}"
|
||||
href="{{slot.json_url}}"
|
||||
timeslot_id="{{slot.pk}}"
|
||||
class="delete delete_slot bottom_left"
|
||||
id="delete_{{day|date:'Y-m-d'}}_{{slot.time|date:'Hi'}}">X</div>
|
||||
|
@ -120,7 +120,7 @@ function setup_slots(){
|
|||
<th class="vert_time">
|
||||
<div class="delete delete_room bottom_left"
|
||||
id="delete_{{r|to_acceptable_id}}"
|
||||
href="{{r.relurl}}"
|
||||
href="{{r.json_url}}"
|
||||
roomid="{{r.pk}}">X</div>
|
||||
<div class="right room_name">{{r}} <span class="capacity">({{r.capacity}})</span></div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue