diff --git a/ietf/dbtemplate/fixtures/nomcom_templates.xml b/ietf/dbtemplate/fixtures/nomcom_templates.xml index 1059d7073..cc0eb32c6 100644 --- a/ietf/dbtemplate/fixtures/nomcom_templates.xml +++ b/ietf/dbtemplate/fixtures/nomcom_templates.xml @@ -76,10 +76,10 @@ Questionnaire - /nomcom/defaults/position/requirements.txt + /nomcom/defaults/position/requirements Position requirements $position: Position - plain + rst These are the requirements for the position $position: Requirements. diff --git a/ietf/nomcom/migrations/0009_remove_requirements_dbtemplate_type_from_path.py b/ietf/nomcom/migrations/0009_remove_requirements_dbtemplate_type_from_path.py new file mode 100644 index 000000000..00830a534 --- /dev/null +++ b/ietf/nomcom/migrations/0009_remove_requirements_dbtemplate_type_from_path.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations + + +def remove_extension(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + for template in DBTemplate.objects.filter(path__endswith="requirements.txt"): + template.path = template.path[:-4] + template.save() + +def restore_extension(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + for template in DBTemplate.objects.filter(path__endswith="requirements"): + template.path = template.path+".txt" + template.save() + +def default_rst(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + default_req = DBTemplate.objects.get(path__startswith='/nomcom/defaults/position/requirements') + default_req.type_id = 'rst' + default_req.save() + +def default_plain(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + default_req = DBTemplate.objects.get(path__startswith='/nomcom/defaults/position/requirements') + default_req.type_id = 'plain' + default_req.save() + +def rst_2015(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + DBTemplate.objects.filter(path__startswith='/nomcom/nomcom2015/').filter(path__contains='position/requirements').exclude(path__contains='/27/').update(type_id='rst') + +def plain_2015(apps, schema_editor): + DBTemplate = apps.get_model('dbtemplate','DBTemplate') + DBTemplate.objects.filter(path__startswith='/nomcom/nomcom2015/').filter(path__contains='position/requirements').update(type_id='plain') + +class Migration(migrations.Migration): + + dependencies = [ + ('nomcom', '0008_auto_20151209_1423'), + ('dbtemplate', '0002_auto_20141222_1749'), + ] + + operations = [ + migrations.RunPython(remove_extension,restore_extension), + migrations.RunPython(default_rst,default_plain), + migrations.RunPython(rst_2015,plain_2015), + ] diff --git a/ietf/nomcom/models.py b/ietf/nomcom/models.py index 521cbe233..238249ed8 100644 --- a/ietf/nomcom/models.py +++ b/ietf/nomcom/models.py @@ -7,6 +7,7 @@ from django.conf import settings from django.core.files.storage import FileSystemStorage from django.contrib.auth.models import User from django.template.loader import render_to_string +from django.template.defaultfilters import linebreaks from ietf.nomcom.fields import EncryptedTextField from ietf.person.models import Person,Email @@ -201,7 +202,10 @@ class Position(models.Model): return render_to_string(self.questionnaire.path, {'position': self}) def get_requirement(self): - return render_to_string(self.requirement.path, {'position': self}) + rendered = render_to_string(self.requirement.path, {'position': self}) + if self.requirement.type_id=='plain': + rendered = linebreaks(rendered) + return rendered class Feedback(models.Model): diff --git a/ietf/nomcom/utils.py b/ietf/nomcom/utils.py index 55cdfa4fb..1349c175e 100644 --- a/ietf/nomcom/utils.py +++ b/ietf/nomcom/utils.py @@ -29,7 +29,7 @@ import debug # pyflakes:ignore MAIN_NOMCOM_TEMPLATE_PATH = '/nomcom/defaults/' QUESTIONNAIRE_TEMPLATE = 'position/questionnaire.txt' HEADER_QUESTIONNAIRE_TEMPLATE = 'position/header_questionnaire.txt' -REQUIREMENTS_TEMPLATE = 'position/requirements.txt' +REQUIREMENTS_TEMPLATE = 'position/requirements' HOME_TEMPLATE = 'home.rst' INEXISTENT_PERSON_TEMPLATE = 'email/inexistent_person.txt' NOMINEE_EMAIL_TEMPLATE = 'email/new_nominee.txt' diff --git a/ietf/templates/nomcom/requirements.html b/ietf/templates/nomcom/requirements.html index d6f2edcad..e1f6e9afa 100644 --- a/ietf/templates/nomcom/requirements.html +++ b/ietf/templates/nomcom/requirements.html @@ -26,7 +26,7 @@
{% for position in positions %}
- {{ position.get_requirement|linebreaks}} + {{ position.get_requirement|safe }}
{% endfor %}