Skip to content

Commit 083f60d

Browse files
committed
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
1 parent 127deda commit 083f60d

9 files changed

Lines changed: 91 additions & 117 deletions

File tree

ietf/group/ajax.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
def group_json(request, groupname):
1717
group = get_object_or_404(Group, acronym=groupname)
1818

19-
#print "group request is: %s\n" % (request.get_host_protocol())
20-
return HttpResponse(json.dumps(group.json_dict(request.get_host_protocol()),
19+
#print "group request is: %s\n" % (request.build_absolute_uri('/'))
20+
return HttpResponse(json.dumps(group.json_dict(request.build_absolute_uri('/')),
2121
sort_keys=True, indent=2),
2222
mimetype="text/json")
2323

ietf/group/models.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Copyright The IETF Trust 2007, All Rights Reserved
22

3+
from urlparse import urljoin
4+
35
from django.db import models
46
from django.db.models import Q
57

@@ -8,7 +10,8 @@
810
from ietf.group.colors import fg_group_colors, bg_group_colors
911

1012
import datetime
11-
13+
import debug
14+
1215
class GroupInfo(models.Model):
1316
time = models.DateTimeField(default=datetime.datetime.now)
1417
name = models.CharField(max_length=80)
@@ -88,20 +91,20 @@ def fg_color(self):
8891
def bg_color(self):
8992
return bg_group_colors[self.upcase_acronym]
9093

91-
def url(self, sitefqdn):
92-
return "%s/group/%s.json" % (sitefqdn, self.acronym)
94+
def json_url(self):
95+
return "/group/%s.json" % (self.acronym,)
9396

94-
def json_dict(self, sitefqdn):
97+
def json_dict(self, host_scheme):
9598
group1= dict()
96-
group1['href'] = self.url(sitefqdn)
99+
group1['href'] = urljoin(host_scheme, self.json_url())
97100
group1['acronym'] = self.acronym
98101
group1['name'] = self.name
99102
group1['state'] = self.state.slug
100103
group1['type'] = self.type.slug
101-
group1['parent_href'] = self.parent.url(sitefqdn)
104+
group1['parent_href'] = urljoin(host_scheme, self.parent.json_url())
102105
# uncomment when people URL handle is created
103106
#if self.ad is not None:
104-
# group1['ad_href'] = self.ad.url(sitefqdn)
107+
# group1['ad_href'] = urljoin(host_scheme, self.ad.url())
105108
group1['list_email'] = self.list_email
106109
group1['list_subscribe'] = self.list_subscribe
107110
group1['list_archive'] = self.list_archive

ietf/meeting/ajax.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from urlparse import urljoin
2+
13
from django.utils import simplejson as json
24
from dajaxice.core import dajaxice_functions
35
from dajaxice.decorators import dajaxice_register
@@ -8,7 +10,7 @@
810

911
from ietf.ietfauth.decorators import group_required, has_role
1012
from ietf.name.models import TimeSlotTypeName
11-
from django.http import HttpResponseRedirect, HttpResponse, Http404, QueryDict, Http403
13+
from django.http import HttpResponseRedirect, HttpResponse, Http404, QueryDict
1214

1315
from ietf.meeting.helpers import get_meeting, get_schedule, get_schedule_by_id, agenda_permissions
1416
from ietf.meeting.views import edit_timeslots, edit_agenda
@@ -56,7 +58,7 @@ def readonly(request, meeting_num, schedule_id):
5658
return json.dumps(
5759
{'secretariat': secretariat,
5860
'write_perm': write_perm,
59-
'owner_href': schedule.owner.url(request.get_host_protocol()),
61+
'owner_href': request.build_absolute_uri(schedule.owner.json_url()),
6062
'read_only': read_only})
6163

6264
@group_required('Area Director','Secretariat')
@@ -73,7 +75,7 @@ def update_timeslot(request, schedule_id, session_id, scheduledsession_id=None,
7375
cansee,canedit = agenda_permissions(meeting, schedule, request.user)
7476

7577
if not canedit:
76-
raise Http403
78+
#raise Exception("Not permitted")
7779
return json.dumps({'error':'no permission'})
7880

7981
session_id = int(session_id)
@@ -136,7 +138,7 @@ def update_timeslot_purpose(request, timeslot_id=None, purpose=None):
136138
timeslot.type = timeslottypename
137139
timeslot.save()
138140

139-
return json.dumps(timeslot.json_dict(request.get_host_protocol))
141+
return json.dumps(timeslot.json_dict(request.build_absolute_uri('/')))
140142

141143
#############################################################################
142144
## ROOM API
@@ -149,7 +151,7 @@ def timeslot_roomlist(request, mtg):
149151
rooms = mtg.room_set.all()
150152
json_array=[]
151153
for room in rooms:
152-
json_array.append(room.json_dict(request.get_host_protocol))
154+
json_array.append(room.json_dict(request.build_absolute_uri('/')))
153155
return HttpResponse(json.dumps(json_array),
154156
mimetype="application/json")
155157

@@ -199,7 +201,7 @@ def timeslot_roomurl(request, num=None, roomid=None):
199201

200202
if request.method == 'GET':
201203
room = get_object_or_404(meeting.room_set, pk=roomid)
202-
return HttpResponse(json.dumps(room.json_dict(request.get_host_protocol())),
204+
return HttpResponse(json.dumps(room.json_dict(request.build_absolute_uri('/'))),
203205
mimetype="application/json")
204206
elif request.method == 'PUT':
205207
return timeslot_updroom(request, meeting)
@@ -216,7 +218,7 @@ def timeslot_slotlist(request, mtg):
216218
slots = mtg.timeslot_set.all()
217219
json_array=[]
218220
for slot in slots:
219-
json_array.append(slot.json_dict(request.get_host_protocol()))
221+
json_array.append(slot.json_dict(request.build_absolute_uri('/')))
220222
return HttpResponse(json.dumps(json_array),
221223
mimetype="application/json")
222224

@@ -267,7 +269,7 @@ def timeslot_sloturl(request, num=None, slotid=None):
267269

268270
if request.method == 'GET':
269271
slot = get_object_or_404(meeting.timeslot_set, pk=slotid)
270-
return HttpResponse(json.dumps(slot.json_dict(request.get_host_protocol())),
272+
return HttpResponse(json.dumps(slot.json_dict(request.build_absolute_uri('/'))),
271273
mimetype="application/json")
272274
elif request.method == 'PUT':
273275
# not yet implemented!
@@ -287,7 +289,7 @@ def agenda_list(request, mtg):
287289
agendas = mtg.schedule_set.all()
288290
json_array=[]
289291
for agenda in agendas:
290-
json_array.append(agenda.json_dict(request.get_host_protocol))
292+
json_array.append(agenda.json_dict(request.build_absolute_uri('/')))
291293
return HttpResponse(json.dumps(json_array),
292294
mimetype="application/json")
293295

@@ -355,7 +357,7 @@ def agenda_update(request, meeting, schedule):
355357
meeting.save()
356358

357359
if "HTTP_ACCEPT" in request.META and "application/json" in request.META['HTTP_ACCEPT']:
358-
return HttpResponse(json.dumps(schedule.json_dict(request.get_host_protocol())),
360+
return HttpResponse(json.dumps(schedule.json_dict(request.build_absolute_uri('/'))),
359361
mimetype="application/json")
360362
else:
361363
return HttpResponseRedirect(
@@ -390,7 +392,7 @@ def agenda_infourl(request, num=None, schedule_name=None):
390392
#log.debug("results in agenda: %u / %s" % (schedule.id, request.method))
391393

392394
if request.method == 'GET':
393-
return HttpResponse(json.dumps(schedule.json_dict(request.get_host_protocol())),
395+
return HttpResponse(json.dumps(schedule.json_dict(request.build_absolute_uri('/'))),
394396
mimetype="application/json")
395397
elif request.method == 'PUT':
396398
return agenda_update(request, meeting, schedule)
@@ -404,7 +406,7 @@ def agenda_infourl(request, num=None, schedule_name=None):
404406
#############################################################################
405407

406408
def meeting_get(request, meeting):
407-
return HttpResponse(json.dumps(meeting.json_dict(request.get_host_protocol()),
409+
return HttpResponse(json.dumps(meeting.json_dict(request.build_absolute_uri('/')),
408410
sort_keys=True, indent=2),
409411
mimetype="application/json")
410412

@@ -458,7 +460,7 @@ def session_json(request, num, sessionid):
458460
except Session.DoesNotExist:
459461
return json.dumps({'error':"no such session %s" % sessionid})
460462

461-
sess1 = session.json_dict(request.get_host_protocol())
463+
sess1 = session.json_dict(request.build_absolute_uri('/'))
462464
return HttpResponse(json.dumps(sess1, sort_keys=True, indent=2),
463465
mimetype="application/json")
464466

@@ -473,7 +475,7 @@ def session_constraints(request, num, sessionid):
473475
except Session.DoesNotExist:
474476
return json.dumps({"error":"no such session"})
475477

476-
constraint_list = session.constraints_dict(request.get_host_protocol())
478+
constraint_list = session.constraints_dict(request.build_absolute_uri('/'))
477479

478480
json_str = json.dumps(constraint_list,
479481
sort_keys=True, indent=2),

0 commit comments

Comments
 (0)