From a426476d395658e31236e586c9103eaebd792d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org> Date: Thu, 30 Mar 2023 11:44:07 +0200 Subject: [PATCH] updated_on, fix default country --- contracts/admin.py | 32 ++++++++++++----- .../migrations/0019_contract_created_on.py | 12 ++++--- .../0020_alter_contract_created_on.py | 15 ++++---- ...ter_contractee_address_country_and_more.py | 36 +++++++++++++++++++ contracts/models.py | 19 ++++++++-- 5 files changed, 92 insertions(+), 22 deletions(-) create mode 100644 contracts/migrations/0021_contract_updated_on_alter_contractee_address_country_and_more.py diff --git a/contracts/admin.py b/contracts/admin.py index b84ccc4..9e6b1b2 100644 --- a/contracts/admin.py +++ b/contracts/admin.py @@ -5,18 +5,26 @@ from django.contrib import admin from django.contrib.auth.models import Permission from django.utils.html import format_html from import_export import resources -from nested_admin import (NestedModelAdmin, NestedStackedInline, - NestedTabularInline) +from nested_admin import NestedModelAdmin, NestedStackedInline, NestedTabularInline from rangefilter.filters import DateRangeFilter from shared.admin import FieldsetInlineOrder, MarkdownxGuardedModelAdmin from .forms import ContractAdminForm, ContractFileAdminForm, SigneeAdminForm -from .models import (Contract, Contractee, ContracteeSignature, - ContracteeSignatureRepresentative, ContractFile, - ContractFilingArea, ContractIntent, ContractIssue, - ContractType, Signee, SigneeSignature, - SigneeSignatureRepresentative) +from .models import ( + Contract, + Contractee, + ContracteeSignature, + ContracteeSignatureRepresentative, + ContractFile, + ContractFilingArea, + ContractIntent, + ContractIssue, + ContractType, + Signee, + SigneeSignature, + SigneeSignatureRepresentative, +) class ContractResource(resources.ModelResource): @@ -153,10 +161,16 @@ class ContractAdmin( ): form = ContractAdminForm - ordering = ("created_on", "name",) + ordering = ( + "created_on", + "name", + ) search_fields = ("name",) - readonly_fields = ("created_by", "created_on",) + readonly_fields = ( + "created_by", + "created_on", + ) autocomplete_fields = ( "primary_contract", "types", diff --git a/contracts/migrations/0019_contract_created_on.py b/contracts/migrations/0019_contract_created_on.py index ae8162d..3fbdb2f 100644 --- a/contracts/migrations/0019_contract_created_on.py +++ b/contracts/migrations/0019_contract_created_on.py @@ -1,19 +1,21 @@ # Generated by Django 4.1.4 on 2023-03-30 08:35 import datetime + from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [ - ('contracts', '0018_contractee_created_by_signee_created_by'), + ("contracts", "0018_contractee_created_by_signee_created_by"), ] operations = [ migrations.AddField( - model_name='contract', - name='created_on', - field=models.DateTimeField(default=datetime.datetime.now, verbose_name='Čas vytvoření'), + model_name="contract", + name="created_on", + field=models.DateTimeField( + default=datetime.datetime.now, verbose_name="Čas vytvoření" + ), ), ] diff --git a/contracts/migrations/0020_alter_contract_created_on.py b/contracts/migrations/0020_alter_contract_created_on.py index 960aa5a..b886252 100644 --- a/contracts/migrations/0020_alter_contract_created_on.py +++ b/contracts/migrations/0020_alter_contract_created_on.py @@ -1,19 +1,22 @@ # Generated by Django 4.1.4 on 2023-03-30 08:36 -import contracts.models from django.db import migrations, models +import contracts.models + class Migration(migrations.Migration): - dependencies = [ - ('contracts', '0019_contract_created_on'), + ("contracts", "0019_contract_created_on"), ] operations = [ migrations.AlterField( - model_name='contract', - name='created_on', - field=models.DateTimeField(default=contracts.models.get_created_on_timestamp, verbose_name='Čas vytvoření'), + model_name="contract", + name="created_on", + field=models.DateTimeField( + default=contracts.models.get_created_on_timestamp, + verbose_name="Čas vytvoření", + ), ), ] diff --git a/contracts/migrations/0021_contract_updated_on_alter_contractee_address_country_and_more.py b/contracts/migrations/0021_contract_updated_on_alter_contractee_address_country_and_more.py new file mode 100644 index 0000000..aea8b86 --- /dev/null +++ b/contracts/migrations/0021_contract_updated_on_alter_contractee_address_country_and_more.py @@ -0,0 +1,36 @@ +# Generated by Django 4.1.4 on 2023-03-30 09:42 + +from django.db import migrations, models + +import contracts.models + + +class Migration(migrations.Migration): + dependencies = [ + ("contracts", "0020_alter_contract_created_on"), + ] + + operations = [ + migrations.AddField( + model_name="contract", + name="updated_on", + field=models.DateTimeField( + default=contracts.models.get_current_utc_timestamp, + verbose_name="Čas poslední aktualizace", + ), + ), + migrations.AlterField( + model_name="contractee", + name="address_country", + field=models.CharField( + default="Česká Republika", max_length=256, verbose_name="Země" + ), + ), + migrations.AlterField( + model_name="signee", + name="address_country", + field=models.CharField( + default="Česká Republika", max_length=256, verbose_name="Země" + ), + ), + ] diff --git a/contracts/models.py b/contracts/models.py index 7950626..eedfe6d 100644 --- a/contracts/models.py +++ b/contracts/models.py @@ -318,10 +318,14 @@ class ContractFilingArea(ContractCountMixin, NameStrMixin, models.Model): verbose_name_plural = "Spisovny" -def get_created_on_timestamp(): +def get_current_utc_timestamp(): return datetime.datetime.now(datetime.timezone.utc) +# Pre-squash migration compatibility +get_created_on_timestamp = get_current_utc_timestamp + + class Contract(NameStrMixin, models.Model): # BEGIN Automatically set fields @@ -338,9 +342,15 @@ class Contract(NameStrMixin, models.Model): created_on = models.DateTimeField( blank=False, null=False, - default=get_created_on_timestamp, + default=get_current_utc_timestamp, verbose_name="Čas vytvoření", ) + updated_on = models.DateTimeField( + blank=False, + null=False, + default=get_current_utc_timestamp, + verbose_name="Čas poslední aktualizace", + ) public_status_set_by = models.ForeignKey( User, @@ -586,6 +596,11 @@ class Contract(NameStrMixin, models.Model): } ) + def save(self, *args, **kwargs): + self.updated_on = get_current_utc_timestamp() + + return super().save(*args, **kwargs) + class Meta: app_label = "contracts" -- GitLab