35235-vm/core/admin.py
Flatlogic Bot e483e6e608 V1
2025-10-25 22:28:34 +00:00

50 lines
1.9 KiB
Python

from django.contrib import admin
from .models import Ticket, Client, Portfolio, Activity, Document
import secrets
import string
@admin.register(Ticket)
class TicketAdmin(admin.ModelAdmin):
list_display = ('subject', 'status', 'priority', 'requester_email', 'created_at')
list_filter = ('status', 'priority')
search_fields = ('subject', 'requester_email', 'description')
@admin.register(Client)
class ClientAdmin(admin.ModelAdmin):
list_display = ('name', 'surname', 'email', 'phone', 'created_at')
search_fields = ('name', 'surname', 'email')
readonly_fields = ('generated_password',)
fieldsets = (
(None, {
'fields': ('name', 'surname', 'email', 'phone', 'address', 'fiscal_code', 'vat_number')
}),
('Credenziali', {
'fields': ('generated_password',)
}),
)
def save_model(self, request, obj, form, change):
if not obj.pk: # Only generate password for new clients
alphabet = string.ascii_letters + string.digits
password = ''.join(secrets.choice(alphabet) for i in range(12))
obj.generated_password = password
super().save_model(request, obj, form, change)
@admin.register(Portfolio)
class PortfolioAdmin(admin.ModelAdmin):
list_display = ('name', 'client', 'created_at')
search_fields = ('name', 'client__name', 'client__surname')
list_filter = ('client',)
@admin.register(Activity)
class ActivityAdmin(admin.ModelAdmin):
list_display = ('title', 'client', 'status', 'activity_date', 'created_at')
search_fields = ('title', 'client__name', 'client__surname')
list_filter = ('status', 'activity_date', 'client')
@admin.register(Document)
class DocumentAdmin(admin.ModelAdmin):
list_display = ('title', 'client', 'created_at')
search_fields = ('title', 'client__name', 'client__surname')
list_filter = ('client',)