55from django .core .urlresolvers import reverse
66from django .db .models import Q
77from django .http import HttpResponse , HttpResponseRedirect
8- from django .shortcuts import render_to_response
8+ from django .shortcuts import render_to_response , get_object_or_404
99from django .template import RequestContext
1010from django .utils import simplejson
1111from django .views .generic .list_detail import object_list , object_detail
1212
1313from ietf .liaisons .accounts import (get_person_for_user , can_add_outgoing_liaison ,
14- can_add_incoming_liaison )
14+ can_add_incoming_liaison , LIAISON_EDIT_GROUPS )
1515from ietf .liaisons .decorators import can_submit_liaison
1616from ietf .liaisons .forms import liaison_form_factory
1717from ietf .liaisons .models import LiaisonDetail , OutgoingLiaisonApproval
1818from ietf .liaisons .utils import IETFHM
1919
2020
2121@can_submit_liaison
22- def add_liaison (request ):
22+ def add_liaison (request , liaison = None ):
2323 if request .method == 'POST' :
2424 form = liaison_form_factory (request , data = request .POST .copy (),
25- files = request .FILES )
25+ files = request .FILES , liaison = liaison )
2626 if form .is_valid ():
2727 liaison = form .save ()
2828 if request .POST .get ('send' , None ):
@@ -32,11 +32,12 @@ def add_liaison(request):
3232 return _fake_email_view (request , liaison )
3333 return HttpResponseRedirect (reverse ('liaison_list' ))
3434 else :
35- form = liaison_form_factory (request )
35+ form = liaison_form_factory (request , liaison = liaison )
3636
3737 return render_to_response (
3838 'liaisons/liaisondetail_edit.html' ,
39- {'form' : form },
39+ {'form' : form ,
40+ 'liaison' : liaison },
4041 context_instance = RequestContext (request ),
4142 )
4243
@@ -88,6 +89,7 @@ def liaison_list(request):
8889 can_send_outgoing = can_add_outgoing_liaison (user )
8990 can_send_incoming = can_add_incoming_liaison (user )
9091 can_approve = False
92+ can_edit = False
9193
9294 person = get_person_for_user (request .user )
9395 if person :
@@ -101,6 +103,7 @@ def liaison_list(request):
101103 template_name = 'liaisons/liaisondetail_list.html' ,
102104 extra_context = {'can_manage' : can_approve or can_send_incoming or can_send_outgoing ,
103105 'can_approve' : can_approve ,
106+ 'can_edit' : can_edit ,
104107 'can_send_incoming' : can_send_incoming ,
105108 'can_send_outgoing' : can_send_outgoing },
106109 )
@@ -147,3 +150,19 @@ def liaison_approval_detail(request, object_id):
147150 object_id = object_id ,
148151 template_name = 'liaisons/liaisondetail_approval_detail.html' ,
149152 )
153+
154+
155+ def liaison_detail (request , object_id ):
156+ public_liaisons = LiaisonDetail .objects .filter (Q (approval__isnull = True )| Q (approval__approved = True )).order_by ("-submitted_date" )
157+ can_edit = False
158+ if request .user .groups .filter (name__in = LIAISON_EDIT_GROUPS ):
159+ can_edit = True
160+ return object_detail (request ,
161+ public_liaisons ,
162+ object_id = object_id ,
163+ extra_context = {'can_edit' : can_edit }
164+ )
165+
166+ def liaison_edit (request , object_id ):
167+ liaison = get_object_or_404 (LiaisonDetail , pk = object_id )
168+ return add_liaison (request , liaison = liaison )
0 commit comments