from django.contrib.gis import admin from .models import ( Project, ProjectPhase, ProjectTag, ProjectTemplate, ProjectTemplateAttribute, ProjectAttributeChoiceSet, ProjectAttributeChoice, ProjectTeamAccess, ProjectUserAccess, ) @admin.register(ProjectTag) class ProjectTagAdmin(admin.ModelAdmin): list_display = ("name_fr", "slug", "order") prepopulated_fields = {"slug": ("name_fr",)} search_fields = ("name_fr", "name_nl") class ProjectTeamAccessInline(admin.TabularInline): model = ProjectTeamAccess extra = 1 autocomplete_fields = ['team'] fields = ('team', 'can_view', 'can_edit') verbose_name = "Accès équipe" verbose_name_plural = "Accès équipes" class ProjectUserAccessInline(admin.TabularInline): model = ProjectUserAccess extra = 1 autocomplete_fields = ['user'] fields = ('user', 'can_view', 'can_edit') verbose_name = "Accès direct utilisateur" verbose_name_plural = "Accès directs utilisateurs" @admin.register(Project) class ProjectAdmin(admin.ModelAdmin): list_display = ("name", "start_date", "end_date") search_fields = ("name",) inlines = [ProjectTeamAccessInline, ProjectUserAccessInline] @admin.register(ProjectTeamAccess) class ProjectTeamAccessAdmin(admin.ModelAdmin): list_display = ("project", "team", "can_view", "can_edit") list_filter = ("can_view", "can_edit", "team__company") search_fields = ("project__name", "project__code", "team__name") autocomplete_fields = ("team",) @admin.register(ProjectUserAccess) class ProjectUserAccessAdmin(admin.ModelAdmin): list_display = ("project", "user", "can_view", "can_edit") list_filter = ("can_view", "can_edit") search_fields = ("project__name", "project__code", "user__username", "user__first_name", "user__last_name") @admin.register(ProjectPhase) class PhaseAdmin(admin.ModelAdmin): list_display = ("name", "project", "start_date", "end_date") search_fields = ("name", "project") class ProjectAttributeChoiceInline(admin.TabularInline): model = ProjectAttributeChoice extra = 1 fields = ("value", "label_fr", "label_nl", "order") @admin.register(ProjectAttributeChoiceSet) class ProjectAttributeChoiceSetAdmin(admin.ModelAdmin): list_display = ("name_fr", "name_nl") search_fields = ("name_fr", "name_nl") inlines = [ProjectAttributeChoiceInline] class ProjectTemplateAttributeInline(admin.TabularInline): model = ProjectTemplateAttribute extra = 1 fields = ("name_fr", "name_nl", "attribute_type", "choice_set", "is_required", "order", "help_text_fr", "help_text_nl") @admin.register(ProjectTemplate) class ProjectTemplateAdmin(admin.ModelAdmin): list_display = ("name_fr", "name_nl", "is_active") list_filter = ("is_active",) search_fields = ("name_fr", "name_nl") inlines = [ProjectTemplateAttributeInline]