87 lines
2.8 KiB
Python
87 lines
2.8 KiB
Python
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]
|