Skip to content
Snippets Groups Projects
Commit fd93f762 authored by sks444's avatar sks444
Browse files

Add yes and default field to screening status

parent cc1ce263
No related branches found
No related tags found
No related merge requests found
...@@ -113,6 +113,7 @@ class ScreeningStatusPermissionHelper(PermissionHelper): ...@@ -113,6 +113,7 @@ class ScreeningStatusPermissionHelper(PermissionHelper):
class ScreeningStatusAdmin(ModelAdmin): class ScreeningStatusAdmin(ModelAdmin):
model = ScreeningStatus model = ScreeningStatus
menu_icon = 'tag' menu_icon = 'tag'
list_display = ('title', 'yes', 'default')
permission_helper_class = ScreeningStatusPermissionHelper permission_helper_class = ScreeningStatusPermissionHelper
......
from collections import Counter from collections import Counter
from wagtail.admin.forms import WagtailAdminPageForm from django.apps import apps
from wagtail.admin.forms import WagtailAdminModelForm, WagtailAdminPageForm
from .workflow import WORKFLOWS from .workflow import WORKFLOWS
...@@ -82,3 +83,20 @@ class RoundBasePageAdminForm(WagtailAdminPageForm): ...@@ -82,3 +83,20 @@ class RoundBasePageAdminForm(WagtailAdminPageForm):
self.add_error('start_date', 'Please select start date.') self.add_error('start_date', 'Please select start date.')
return cleaned_data return cleaned_data
class ScreeningStatusAdminForm(WagtailAdminModelForm):
def clean(self):
cleaned_data = super().clean()
default = cleaned_data['default']
yes = cleaned_data['yes']
ScreeningStatus = apps.get_model('funds', 'ScreeningStatus')
default_screening = ScreeningStatus.objects.filter(
default=True, yes=yes
).first()
if default:
# Can't set two defaults for yes/no.
default_screening.default = False
default_screening.save()
return cleaned_data
# Generated by Django 2.2.16 on 2020-11-02 06:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('funds', '0079_add_reviewer_settings_for_submission_access'),
]
operations = [
migrations.AddField(
model_name='screeningstatus',
name='default',
field=models.BooleanField(default=False, help_text='Only one Yes and No screening status can be set as default.', verbose_name='Default Yes/No'),
),
migrations.AddField(
model_name='screeningstatus',
name='yes',
field=models.BooleanField(default=False, help_text='Tick mark for Yes otherwise No.', verbose_name='Yes/No'),
),
]
from django.db import models from django.db import models
from ..admin_forms import ScreeningStatusAdminForm
class ScreeningStatus(models.Model): class ScreeningStatus(models.Model):
title = models.CharField(max_length=128) title = models.CharField(max_length=128)
yes = models.BooleanField(
default=False, verbose_name="Yes/No",
help_text='Tick mark for Yes otherwise No.'
)
default = models.BooleanField(
default=False, verbose_name="Default Yes/No",
help_text='Only one Yes and No screening status can be set as default.'
)
base_form_class = ScreeningStatusAdminForm
class Meta: class Meta:
verbose_name_plural = "screening statuses" verbose_name_plural = "screening statuses"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment