|
1 | | -# Copyright The IETF Trust 2012-2019, All Rights Reserved |
| 1 | +# Copyright The IETF Trust 2012-2020, All Rights Reserved |
2 | 2 | # -*- coding: utf-8 -*- |
3 | 3 | from __future__ import absolute_import, print_function, unicode_literals |
4 | 4 |
|
@@ -202,6 +202,11 @@ class Position(models.Model): |
202 | 202 | is_open = models.BooleanField(verbose_name='Is open', default=False, help_text="Set is_open when the nomcom is working on a position. Clear it when an appointment is confirmed.") |
203 | 203 | accepting_nominations = models.BooleanField(verbose_name='Is accepting nominations', default=False) |
204 | 204 | accepting_feedback = models.BooleanField(verbose_name='Is accepting feedback', default=False) |
| 205 | + # To generalize the generic requirements code, change this to a FK to a |
| 206 | + # NameModel subclass which enumerates the generic requirement DBtemplates |
| 207 | + # under /nomcom/defaults/, e.g., iesg_requirements; and use that to fetch |
| 208 | + # the generic template in .get_requirements(): |
| 209 | + is_iesg_position = models.BooleanField(verbose_name='Is IESG Position', default=False) |
205 | 210 |
|
206 | 211 | objects = PositionManager() |
207 | 212 |
|
@@ -235,10 +240,19 @@ def get_questionnaire(self): |
235 | 240 | return render_to_string(self.questionnaire.path, {'position': self}) |
236 | 241 |
|
237 | 242 | def get_requirement(self): |
238 | | - rendered = render_to_string(self.requirement.path, {'position': self}) |
| 243 | + specific_reqs = render_to_string(self.requirement.path, {'position': self}) |
239 | 244 | if self.requirement.type_id=='plain': |
240 | | - rendered = linebreaks(rendered) |
241 | | - return rendered |
| 245 | + specific_reqs = linebreaks(specific_reqs) |
| 246 | + |
| 247 | + generic_iesg_template = DBTemplate.objects.filter(group=self.nomcom.group,path__endswith='iesg_requirements').first() |
| 248 | + |
| 249 | + if self.is_iesg_position and generic_iesg_template: |
| 250 | + generic_iesg_reqs = render_to_string(generic_iesg_template.path, {}) |
| 251 | + if generic_iesg_template.type_id=='plain': |
| 252 | + generic_iesg_reqs = linebreaks(generic_iesg_reqs) |
| 253 | + return render_to_string("nomcom/iesg_position_requirements.html", dict(position=self, generic_iesg_reqs=generic_iesg_reqs, specific_reqs=specific_reqs)) |
| 254 | + else: |
| 255 | + return specific_reqs |
242 | 256 |
|
243 | 257 | @python_2_unicode_compatible |
244 | 258 | class Topic(models.Model): |
|
0 commit comments