Initial commit from ZIP
This commit is contained in:
commit
378d4692a9
454 files changed
+40367
No files matched your search
Executable
+53
@@ -0,0 +1,53 @@
|
||||
from django import forms
|
||||
from django.contrib import admin
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from outbo.apps.projects.models import Project, Member
|
||||
|
||||
|
||||
class ProjectCreationForm(forms.ModelForm):
|
||||
products_amount = forms.IntegerField(
|
||||
label=_("Products amount"), widget=forms.NumberInput, min_value=1, max_value=20
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = Project
|
||||
fields = [
|
||||
"name",
|
||||
"description",
|
||||
"products_amount",
|
||||
"category",
|
||||
"brand",
|
||||
"printing_files_date",
|
||||
"promo_date",
|
||||
]
|
||||
|
||||
|
||||
class MemberInline(admin.TabularInline):
|
||||
model = Member
|
||||
readonly_fields = ["project"]
|
||||
extra = 1
|
||||
|
||||
|
||||
@admin.register(Project)
|
||||
class ProjectAdmin(admin.ModelAdmin):
|
||||
add_form = ProjectCreationForm
|
||||
inlines = [MemberInline]
|
||||
list_display = ('__str__', 'created_at', 'max_product_stage_description')
|
||||
|
||||
def get_form(self, request, obj=None, **kwargs):
|
||||
defaults = {}
|
||||
if obj is None:
|
||||
defaults["form"] = self.add_form
|
||||
defaults.update(kwargs)
|
||||
return super().get_form(request, obj, **defaults)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
if not change:
|
||||
obj.save(products_amount=form.cleaned_data["products_amount"])
|
||||
obj.save()
|
||||
|
||||
def get_readonly_fields(self, request, obj=None):
|
||||
if obj:
|
||||
return super().get_readonly_fields(request, obj=obj) + ("slug",)
|
||||
return super().get_readonly_fields(request, obj=obj)
|
||||
Reference in new issue
Block a user