Skip to content

Commit 7d120da

Browse files
committed
Removed the type from the template pathname for the requirements templates. Made the requiremetns view work for both template types plain and rst. Changed the default for the requirements template for new nomcoms to rst. Migrated 2015 requirements to rst (except for the IAB position, which would require a significant edit)
- Legacy-Id: 10587
1 parent 015242d commit 7d120da

5 files changed

Lines changed: 59 additions & 5 deletions

File tree

ietf/dbtemplate/fixtures/nomcom_templates.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ Questionnaire</field>
7676
<field to="group.group" name="group" rel="ManyToOneRel"><None></None></field>
7777
</object>
7878
<object pk="6" model="dbtemplate.dbtemplate">
79-
<field type="CharField" name="path">/nomcom/defaults/position/requirements.txt</field>
79+
<field type="CharField" name="path">/nomcom/defaults/position/requirements</field>
8080
<field type="CharField" name="title">Position requirements</field>
8181
<field type="TextField" name="variables">$position: Position</field>
82-
<field to="name.dbtemplatetypename" name="type" rel="ManyToOneRel">plain</field>
82+
<field to="name.dbtemplatetypename" name="type" rel="ManyToOneRel">rst</field>
8383
<field type="TextField" name="content">These are the requirements for the position $position:
8484

8585
Requirements.</field>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations
5+
6+
7+
def remove_extension(apps, schema_editor):
8+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
9+
for template in DBTemplate.objects.filter(path__endswith="requirements.txt"):
10+
template.path = template.path[:-4]
11+
template.save()
12+
13+
def restore_extension(apps, schema_editor):
14+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
15+
for template in DBTemplate.objects.filter(path__endswith="requirements"):
16+
template.path = template.path+".txt"
17+
template.save()
18+
19+
def default_rst(apps, schema_editor):
20+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
21+
default_req = DBTemplate.objects.get(path__startswith='/nomcom/defaults/position/requirements')
22+
default_req.type_id = 'rst'
23+
default_req.save()
24+
25+
def default_plain(apps, schema_editor):
26+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
27+
default_req = DBTemplate.objects.get(path__startswith='/nomcom/defaults/position/requirements')
28+
default_req.type_id = 'plain'
29+
default_req.save()
30+
31+
def rst_2015(apps, schema_editor):
32+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
33+
DBTemplate.objects.filter(path__startswith='/nomcom/nomcom2015/').filter(path__contains='position/requirements').exclude(path__contains='/27/').update(type_id='rst')
34+
35+
def plain_2015(apps, schema_editor):
36+
DBTemplate = apps.get_model('dbtemplate','DBTemplate')
37+
DBTemplate.objects.filter(path__startswith='/nomcom/nomcom2015/').filter(path__contains='position/requirements').update(type_id='plain')
38+
39+
class Migration(migrations.Migration):
40+
41+
dependencies = [
42+
('nomcom', '0008_auto_20151209_1423'),
43+
('dbtemplate', '0002_auto_20141222_1749'),
44+
]
45+
46+
operations = [
47+
migrations.RunPython(remove_extension,restore_extension),
48+
migrations.RunPython(default_rst,default_plain),
49+
migrations.RunPython(rst_2015,plain_2015),
50+
]

ietf/nomcom/models.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from django.core.files.storage import FileSystemStorage
88
from django.contrib.auth.models import User
99
from django.template.loader import render_to_string
10+
from django.template.defaultfilters import linebreaks
1011

1112
from ietf.nomcom.fields import EncryptedTextField
1213
from ietf.person.models import Person,Email
@@ -201,7 +202,10 @@ def get_questionnaire(self):
201202
return render_to_string(self.questionnaire.path, {'position': self})
202203

203204
def get_requirement(self):
204-
return render_to_string(self.requirement.path, {'position': self})
205+
rendered = render_to_string(self.requirement.path, {'position': self})
206+
if self.requirement.type_id=='plain':
207+
rendered = linebreaks(rendered)
208+
return rendered
205209

206210

207211
class Feedback(models.Model):

ietf/nomcom/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
MAIN_NOMCOM_TEMPLATE_PATH = '/nomcom/defaults/'
3030
QUESTIONNAIRE_TEMPLATE = 'position/questionnaire.txt'
3131
HEADER_QUESTIONNAIRE_TEMPLATE = 'position/header_questionnaire.txt'
32-
REQUIREMENTS_TEMPLATE = 'position/requirements.txt'
32+
REQUIREMENTS_TEMPLATE = 'position/requirements'
3333
HOME_TEMPLATE = 'home.rst'
3434
INEXISTENT_PERSON_TEMPLATE = 'email/inexistent_person.txt'
3535
NOMINEE_EMAIL_TEMPLATE = 'email/new_nominee.txt'

ietf/templates/nomcom/requirements.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ <h2>Desired expertise</h2>
2626
<div class="tab-content">
2727
{% for position in positions %}
2828
<div class="tab-pane {% if forloop.first %}active{% endif %}" id="{{ position.name|slugify }}">
29-
{{ position.get_requirement|linebreaks}}
29+
{{ position.get_requirement|safe }}
3030
</div>
3131
{% endfor %}
3232
</div>

0 commit comments

Comments
 (0)