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
This commit is contained in:
Robert Sparks 2015-12-12 03:49:23 +00:00
parent 015242da28
commit 7d120da9ef
5 changed files with 59 additions and 5 deletions

View file

@ -76,10 +76,10 @@ Questionnaire</field>
<field to="group.group" name="group" rel="ManyToOneRel"><None></None></field>
</object>
<object pk="6" model="dbtemplate.dbtemplate">
<field type="CharField" name="path">/nomcom/defaults/position/requirements.txt</field>
<field type="CharField" name="path">/nomcom/defaults/position/requirements</field>
<field type="CharField" name="title">Position requirements</field>
<field type="TextField" name="variables">$position: Position</field>
<field to="name.dbtemplatetypename" name="type" rel="ManyToOneRel">plain</field>
<field to="name.dbtemplatetypename" name="type" rel="ManyToOneRel">rst</field>
<field type="TextField" name="content">These are the requirements for the position $position:
Requirements.</field>

View file

@ -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),
]

View file

@ -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):

View file

@ -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'

View file

@ -26,7 +26,7 @@
<div class="tab-content">
{% for position in positions %}
<div class="tab-pane {% if forloop.first %}active{% endif %}" id="{{ position.name|slugify }}">
{{ position.get_requirement|linebreaks}}
{{ position.get_requirement|safe }}
</div>
{% endfor %}
</div>