From a118066129b8d639ebbe8f8eda9acac31dcc8961 Mon Sep 17 00:00:00 2001 From: Klaas van Schelven Date: Thu, 12 Sep 2024 14:08:46 +0200 Subject: [PATCH] Django admin forms: do not mess up my specially crafted fields please * no stripping * no introduction of '\r' --- issues/admin.py | 3 +++ issues/forms.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/issues/admin.py b/issues/admin.py index 40bf630..f1a1c65 100644 --- a/issues/admin.py +++ b/issues/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin from .models import Issue, Grouping, TurningPoint +from .forms import IssueAdminForm class GroupingInline(admin.TabularInline): @@ -34,6 +35,8 @@ class TurningPointInline(admin.TabularInline): @admin.register(Issue) class IssueAdmin(admin.ModelAdmin): + form = IssueAdminForm + fields = [ 'project', 'friendly_id', diff --git a/issues/forms.py b/issues/forms.py index 2eca153..f860dc9 100644 --- a/issues/forms.py +++ b/issues/forms.py @@ -9,3 +9,21 @@ class CommentForm(ModelForm): class Meta: model = TurningPoint fields = ['comment'] + + +class IssueAdminForm(ModelForm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + for fieldname in self.fields: + self.fields[fieldname].strip = False + + def clean_fixed_at(self): + fixed_at = self.cleaned_data.get('fixed_at') + fixed_at = fixed_at.replace("\r", "") + return fixed_at + + def clean_events_at(self): + events_at = self.cleaned_data.get('events_at') + events_at = events_at.replace("\r", "") + return events_at