Skip to content
Snippets Groups Projects
Commit c838bc46 authored by Alexa Valentová's avatar Alexa Valentová
Browse files

Handle auto-imported contracts better

parent 92440753
Branches
No related tags found
No related merge requests found
Pipeline #20999 passed
#!/usr/bin/make -f #!/usr/bin/make -f
PYTHON = python3.11 PYTHON = python3.12
VENV = .venv VENV = .venv
PORT = 8013 PORT = 8013
SETTINGS = registry.settings.dev SETTINGS = registry.settings.dev
......
...@@ -88,7 +88,9 @@ class OwnPermissionsMixin( ...@@ -88,7 +88,9 @@ class OwnPermissionsMixin(
) )
): ):
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
if obj.created_by is None: # If there is a primary key already assigned, this is an auto-generated
# contract that shouldn't have an author at all.
if obj.created_by is None and obj.pk is None:
obj.created_by = request.user obj.created_by = request.user
return super().save_model(request, obj, form, change) return super().save_model(request, obj, form, change)
...@@ -250,7 +252,7 @@ class ContractAdmin( ...@@ -250,7 +252,7 @@ class ContractAdmin(
search_fields = ("name",) search_fields = ("name",)
readonly_fields = ( readonly_fields = (
"created_by", # "created_by", -- Dynamic
"created_on", "created_on",
"updated_on", "updated_on",
) )
...@@ -606,8 +608,6 @@ class ContractAdmin( ...@@ -606,8 +608,6 @@ class ContractAdmin(
return parent_save_response return parent_save_response
def get_readonly_fields(self, request, obj=None): def get_readonly_fields(self, request, obj=None):
readonly_fields = []
fields = [] fields = []
for fieldset in self.get_fieldsets(request): for fieldset in self.get_fieldsets(request):
...@@ -621,8 +621,14 @@ class ContractAdmin( ...@@ -621,8 +621,14 @@ class ContractAdmin(
): ):
fields.remove("status") fields.remove("status")
if request.user.is_superuser:
fields.remove("created_by")
return fields return fields
if not request.user.is_superuser:
return list(self.readonly_fields) + ["created_by"]
return list(self.readonly_fields) return list(self.readonly_fields)
def has_change_permission(self, request, obj=None): def has_change_permission(self, request, obj=None):
......
...@@ -94,6 +94,7 @@ class ContractAdminForm(forms.ModelForm): ...@@ -94,6 +94,7 @@ class ContractAdminForm(forms.ModelForm):
and choice_key == Contract.StatusTypes.TO_BE_APPROVED and choice_key == Contract.StatusTypes.TO_BE_APPROVED
and self.current_user.has_perm("contracts.approve") and self.current_user.has_perm("contracts.approve")
): ):
print("allowing")
allowed_choices.append( allowed_choices.append(
( (
choice_key, choice_key,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment