Skip to content

Commit 9923b59

Browse files
committed
Send liaison form skel. See ietf-tools#342
- Legacy-Id: 2334
1 parent 8ef3b7d commit 9923b59

File tree

5 files changed

+108
-2
lines changed

5 files changed

+108
-2
lines changed

ietf/liaisons/forms.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from django import forms
2+
from django.template.loader import render_to_string
3+
4+
from ietf.liaisons.models import LiaisonDetail
5+
from ietf.liaisons.accounts import get_person_for_user
6+
7+
8+
class LiaisonForm(forms.ModelForm):
9+
10+
from_field = forms.ChoiceField()
11+
organization = forms.CharField()
12+
13+
fieldsets = ((None, ('from_field', 'replyto', 'organization', 'to_poc',
14+
'cc1', 'response_contact', 'technical_contact',
15+
'purpose', 'purpose_text', 'deadline_date', 'body',
16+
)
17+
),
18+
)
19+
20+
class Meta:
21+
model = LiaisonDetail
22+
23+
def __init__(self, user, *args, **kwargs):
24+
super(LiaisonForm, self).__init__(*args, **kwargs)
25+
self.person = get_person_for_user(user)
26+
27+
def __unicode__(self):
28+
return self.as_div()
29+
30+
def as_div(self):
31+
return render_to_string('liaisons/liaisonform.html', {'form': self})
32+
33+
def get_fieldsets(self):
34+
if not self.fieldsets:
35+
yield dict(name=None, fields=self)
36+
else:
37+
for fieldset, fields in self.fieldsets:
38+
fieldset_dict = dict(name=fieldset, fields=[])
39+
for field_name in fields:
40+
if field_name in self.fields.keyOrder:
41+
fieldset_dict['fields'].append(self[field_name])
42+
if not fieldset_dict['fields']:
43+
# if there is no fields in this fieldset, we continue to next fieldset
44+
continue
45+
yield fieldset_dict

ietf/liaisons/urls.py

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

3-
from django.conf.urls.defaults import patterns
3+
from django.conf.urls.defaults import patterns, url
44
from ietf.liaisons.models import LiaisonDetail
55

66
info_dict = {
@@ -20,3 +20,7 @@
2020
(r'^help/to_ietf/$', 'direct_to_template', {'template': 'liaisons/guide_to_ietf.html'}),
2121
(r'^managers/$', 'redirect_to', { 'url': 'http://www.ietf.org/liaison/managers.html' })
2222
)
23+
24+
urlpatterns += patterns('ietf.liaisons.views',
25+
url(r'^add/$', 'add_liaison', name='add_liaison'),
26+
)

ietf/liaisons/views.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
11
# Copyright The IETF Trust 2007, All Rights Reserved
2+
from django.shortcuts import render_to_response
3+
from django.template import RequestContext
24

3-
# Create your views here.
5+
from ietf.liaisons.decorators import can_submit_liaison
6+
from ietf.liaisons.forms import LiaisonForm
7+
8+
9+
@can_submit_liaison
10+
def add_liaison(request):
11+
form = LiaisonForm(request.user)
12+
13+
return render_to_response(
14+
'liaisons/liaisondetail_edit.html',
15+
{'form': form},
16+
context_instance=RequestContext(request),
17+
)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{% extends "base.html" %}
2+
{# Copyright The IETF Trust 2007, All Rights Reserved #}
3+
{% load ietf_filters %}
4+
{% block title %}Liaison Statement: {% include 'liaisons/liaison_title.html' %}{% endblock %}
5+
6+
{% block pagehead %}
7+
<meta name="description" content="Liaison Statement from {{ object.from_body }}{% if not object.by_secretariat %} to {{object.to_body}}{% endif %} ({{ object.submitted_date|date:"Y" }})" />
8+
{% endblock %}
9+
10+
{% block content %}
11+
<h1>Liaison Statement: {% include 'liaisons/liaison_title.html' %}</h1>
12+
13+
<table>
14+
{{ form }}
15+
</table>
16+
17+
{% endblock %}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{% load i18n %}
2+
{% block content %}
3+
4+
<div class="baseform">
5+
{% for fieldset in form.get_fieldsets %}
6+
{% if fieldset.name %}
7+
<fieldset>
8+
<legend>{{ fieldset.name }}</legend>
9+
{% endif %}
10+
{% for field in fieldset.fields %}
11+
<div id="baseform-fieldname-{{ field.html_name }}" class="{% if field.errors %}error {% endif %}field BaseFormStringWidget{% if field.field.column_style %} {{ field.field.column_style }}{% endif %}">
12+
<label for="id_{{ field.html_name }}">{{ field.label }}</label>
13+
{% if field.field.required %}
14+
<span class="fieldRequired" title="Required"></span>
15+
{% endif %}
16+
{{ field.errors }}
17+
<div id="{{ field.html_name }}_help" class="formHelp"> {{ field.help_text }}</div>
18+
{{ field }}
19+
</div>
20+
{% endfor %}
21+
{% if fieldset.name %}
22+
</fieldset>
23+
{% endif %}
24+
{% endfor %}
25+
{% endblock %}
26+
</div>

0 commit comments

Comments
 (0)