team-3/src/c3nav/site/forms.py

56 lines
1.7 KiB
Python
Raw Normal View History

from django.db import transaction
2019-12-24 17:28:41 +01:00
from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _
2019-12-24 17:28:41 +01:00
from c3nav.mapdata.forms import I18nModelFormMixin
2019-12-27 14:13:40 +01:00
from c3nav.mapdata.models.locations import Position
from c3nav.mapdata.models.report import Report, ReportUpdate
2019-12-24 17:28:41 +01:00
class ReportIssueForm(I18nModelFormMixin, ModelForm):
class Meta:
model = Report
fields = ['title', 'description']
class ReportMissingLocationForm(I18nModelFormMixin, ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['created_groups'].label_from_instance = lambda obj: obj.title
2019-12-24 17:28:41 +01:00
class Meta:
model = Report
fields = ['title', 'description', 'created_title', 'created_groups']
class ReportUpdateForm(ModelForm):
def __init__(self, request, *args, **kwargs):
super().__init__(*args, **kwargs)
self.request = request
self.fields['open'].label = _('change status')
self.fields['open'].widget.choices = (
('unknown', _('don\'t change')),
('true', _('open')),
('false', _('closed')),
)
def save(self):
with transaction.atomic():
super().save()
report = self.instance.report
if self.instance.open is not None:
report.open = self.instance.open
if self.instance.assigned_to:
report.assigned_to = self.instance.assigned_to
report.save()
class Meta:
model = ReportUpdate
fields = ['open', 'comment', 'public']
2019-12-27 14:13:40 +01:00
class PositionForm(ModelForm):
class Meta:
model = Position
fields = ['name']