parent
2cdc041588
commit
bfaf558e8d
|
@ -1,6 +1,8 @@
|
|||
from ietf.idtracker.models import Role, PersonOrOrgInfo
|
||||
|
||||
|
||||
LIAISON_EDIT_GROUPS = ['Liaison_Manager', 'Secreatriat']
|
||||
|
||||
def get_ietf_chair():
|
||||
person = PersonOrOrgInfo.objects.filter(role=Role.IETF_CHAIR)
|
||||
return person and person[0] or None
|
||||
|
|
|
@ -251,9 +251,17 @@ class OutgoingLiaisonForm(LiaisonForm):
|
|||
liaison.save()
|
||||
|
||||
|
||||
class EditLiaisonForm(LiaisonForm):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def liaison_form_factory(request, **kwargs):
|
||||
user = request.user
|
||||
force_incoming = 'incoming' in request.GET.keys()
|
||||
liaison = kwargs.pop('liaison', None)
|
||||
if liaison:
|
||||
return EditLiaisonForm(instance=liaison, **kwargs)
|
||||
if not force_incoming and can_add_outgoing_liaison(user):
|
||||
return OutgoingLiaisonForm(user, **kwargs)
|
||||
elif can_add_incoming_liaison(user):
|
||||
|
|
|
@ -10,7 +10,6 @@ info_dict = {
|
|||
|
||||
# there's an opportunity for date-based filtering.
|
||||
urlpatterns = patterns('django.views.generic.list_detail',
|
||||
url(r'^(?P<object_id>\d+)/$', 'object_detail', info_dict, name='liaison_detail'),
|
||||
)
|
||||
|
||||
urlpatterns += patterns('django.views.generic.simple',
|
||||
|
@ -23,6 +22,8 @@ urlpatterns += patterns('django.views.generic.simple',
|
|||
|
||||
urlpatterns += patterns('ietf.liaisons.views',
|
||||
url(r'^$', 'liaison_list', name='liaison_list'),
|
||||
url(r'^(?P<object_id>\d+)/$', 'liaison_detail', name='liaison_detail'),
|
||||
url(r'^(?P<object_id>\d+)/edit/$', 'liaison_edit', name='liaison_edit'),
|
||||
url(r'^for_approval/$', 'liaison_approval_list', name='liaison_approval_list'),
|
||||
url(r'^for_approval/(?P<object_id>\d+)/$', 'liaison_approval_detail', name='liaison_approval_detail'),
|
||||
url(r'^add/$', 'add_liaison', name='add_liaison'),
|
||||
|
|
|
@ -5,13 +5,13 @@ from django.conf import settings
|
|||
from django.core.urlresolvers import reverse
|
||||
from django.db.models import Q
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.template import RequestContext
|
||||
from django.utils import simplejson
|
||||
from django.views.generic.list_detail import object_list, object_detail
|
||||
|
||||
from ietf.liaisons.accounts import (get_person_for_user, can_add_outgoing_liaison,
|
||||
can_add_incoming_liaison)
|
||||
can_add_incoming_liaison, LIAISON_EDIT_GROUPS)
|
||||
from ietf.liaisons.decorators import can_submit_liaison
|
||||
from ietf.liaisons.forms import liaison_form_factory
|
||||
from ietf.liaisons.models import LiaisonDetail, OutgoingLiaisonApproval
|
||||
|
@ -19,10 +19,10 @@ from ietf.liaisons.utils import IETFHM
|
|||
|
||||
|
||||
@can_submit_liaison
|
||||
def add_liaison(request):
|
||||
def add_liaison(request, liaison=None):
|
||||
if request.method == 'POST':
|
||||
form = liaison_form_factory(request, data=request.POST.copy(),
|
||||
files = request.FILES)
|
||||
files = request.FILES, liaison=liaison)
|
||||
if form.is_valid():
|
||||
liaison = form.save()
|
||||
if request.POST.get('send', None):
|
||||
|
@ -32,11 +32,12 @@ def add_liaison(request):
|
|||
return _fake_email_view(request, liaison)
|
||||
return HttpResponseRedirect(reverse('liaison_list'))
|
||||
else:
|
||||
form = liaison_form_factory(request)
|
||||
form = liaison_form_factory(request, liaison=liaison)
|
||||
|
||||
return render_to_response(
|
||||
'liaisons/liaisondetail_edit.html',
|
||||
{'form': form},
|
||||
{'form': form,
|
||||
'liaison': liaison},
|
||||
context_instance=RequestContext(request),
|
||||
)
|
||||
|
||||
|
@ -88,6 +89,7 @@ def liaison_list(request):
|
|||
can_send_outgoing = can_add_outgoing_liaison(user)
|
||||
can_send_incoming = can_add_incoming_liaison(user)
|
||||
can_approve = False
|
||||
can_edit = False
|
||||
|
||||
person = get_person_for_user(request.user)
|
||||
if person:
|
||||
|
@ -101,6 +103,7 @@ def liaison_list(request):
|
|||
template_name='liaisons/liaisondetail_list.html',
|
||||
extra_context={'can_manage': can_approve or can_send_incoming or can_send_outgoing,
|
||||
'can_approve': can_approve,
|
||||
'can_edit': can_edit,
|
||||
'can_send_incoming': can_send_incoming,
|
||||
'can_send_outgoing': can_send_outgoing},
|
||||
)
|
||||
|
@ -147,3 +150,19 @@ def liaison_approval_detail(request, object_id):
|
|||
object_id=object_id,
|
||||
template_name='liaisons/liaisondetail_approval_detail.html',
|
||||
)
|
||||
|
||||
|
||||
def liaison_detail(request, object_id):
|
||||
public_liaisons = LiaisonDetail.objects.filter(Q(approval__isnull=True)|Q(approval__approved=True)).order_by("-submitted_date")
|
||||
can_edit = False
|
||||
if request.user.groups.filter(name__in=LIAISON_EDIT_GROUPS):
|
||||
can_edit = True
|
||||
return object_detail(request,
|
||||
public_liaisons,
|
||||
object_id=object_id,
|
||||
extra_context = {'can_edit': can_edit}
|
||||
)
|
||||
|
||||
def liaison_edit(request, object_id):
|
||||
liaison = get_object_or_404(LiaisonDetail, pk=object_id)
|
||||
return add_liaison(request, liaison=liaison)
|
||||
|
|
|
@ -67,4 +67,9 @@
|
|||
{% endif %}
|
||||
</table>
|
||||
|
||||
{% if can_edit %}
|
||||
<form method="get" action="{% url liaison_edit object.pk %}">
|
||||
<input type="submit" value="Edit" />
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||
{% load ietf_filters %}
|
||||
{% block title %}Liaison Statement: {% include 'liaisons/liaison_title.html' %}{% endblock %}
|
||||
{% block title %}{% if liaison %}Edit liaison: {{ liaison }}{% else %}Send Liaison Statement{% endif %}{% endblock %}
|
||||
|
||||
{% block pagehead %}
|
||||
{{ form.media }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Send Liaison Statement</h1>
|
||||
<h1>{% if liaison %}Edit liaison: {{ liaison }}{% else %}Send Liaison Statement{% endif %}</h1>
|
||||
|
||||
{% if not liaison %}
|
||||
<ul>
|
||||
<li>If you wish to submit your liaison statement by e-mail, then please send it to <a href="mailto:statements@ietf.org">statements@ietf.org</a></li>
|
||||
<li>Fields marked with <span class="requiredField">*</span> are required. For detailed descriptions of the fields see <a href="https://datatracker.ietf.org/liaison/help/fields/">Field help</a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{{ form }}
|
||||
|
||||
|
|
|
@ -43,8 +43,12 @@
|
|||
{% endfor %}
|
||||
|
||||
<div class="submitrow">
|
||||
{% if form.liaison %}
|
||||
<input type="submit" value="Edit" name="edit" />
|
||||
{% else %}
|
||||
<input type="submit" value="Send and Post" name="send" />
|
||||
<input type="submit" value="Post Only" name="post_only" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue