|
@@ -52,18 +52,6 @@ class AllocationStatusFilter(admin.SimpleListFilter):
|
|
|
return queryset.filter(active_filter)
|
|
|
|
|
|
|
|
|
-### Helpers
|
|
|
-
|
|
|
-def get_foreignkey_link_func(field):
|
|
|
- def foreignkey_link(self, instance):
|
|
|
- obj = getattr(instance, field)
|
|
|
- url = reverse('admin:%s_%s_change' % (obj._meta.app_label,
|
|
|
- obj._meta.model_name),
|
|
|
- args=(obj.pk,))
|
|
|
- return format_html(u'<a href="{}">{}</a>', url, str(obj))
|
|
|
- return foreignkey_link
|
|
|
-
|
|
|
-
|
|
|
### Inlines
|
|
|
|
|
|
class ResourceAllocationInlineFormSet(BaseInlineFormSet):
|
|
@@ -114,7 +102,9 @@ ends_resource.short_description = 'Terminer les allocations sélectionnées'
|
|
|
### ModelAdmin
|
|
|
|
|
|
class ServiceAdmin(admin.ModelAdmin):
|
|
|
- list_display = ('id', 'get_adhesion_link', 'get_adherent_link', 'service_type', 'label', 'active')
|
|
|
+ list_display = ('id', 'adhesion', 'get_adherent_link', 'service_type', 'label', 'active')
|
|
|
+ list_display_links = ('adhesion',)
|
|
|
+ list_select_related = ('adhesion',) # to reduce database requests
|
|
|
list_filter = (
|
|
|
'active',
|
|
|
('service_type', admin.RelatedOnlyFieldListFilter),
|
|
@@ -123,9 +113,6 @@ class ServiceAdmin(admin.ModelAdmin):
|
|
|
search_fields = ('id', 'service_type__name', 'label', 'adhesion__id',)
|
|
|
raw_id_fields = ('adhesion',)
|
|
|
|
|
|
- get_adhesion_link = get_foreignkey_link_func('adhesion')
|
|
|
- get_adhesion_link.short_description = 'Numéro d’adhésion'
|
|
|
-
|
|
|
get_adherent_link = lambda self, service: service.adhesion.get_adherent_link()
|
|
|
get_adherent_link.short_description = Adhesion.get_adherent_link.short_description
|
|
|
|
|
@@ -186,18 +173,13 @@ class RouteAdmin(admin.ModelAdmin):
|
|
|
|
|
|
|
|
|
class ResourceAllocationAdmin(admin.ModelAdmin):
|
|
|
- list_display = ('id', 'resource_link', 'service_link', 'start', 'end',)
|
|
|
+ list_display = ('id', 'resource', 'service', 'start', 'end',)
|
|
|
+ list_display_links = ('resource', 'service',)
|
|
|
list_filter = (AllocationStatusFilter,)
|
|
|
#actions = (ends_resource,)
|
|
|
raw_id_fields = ('resource', 'service',)
|
|
|
search_fields = ('resource__ip', 'service__id', 'service__service_type__name', 'service__label')
|
|
|
|
|
|
- resource_link = get_foreignkey_link_func('resource')
|
|
|
- resource_link.short_description = 'Ressource'
|
|
|
-
|
|
|
- service_link = get_foreignkey_link_func('service')
|
|
|
- service_link.short_description = 'Service'
|
|
|
-
|
|
|
def get_actions(self, request):
|
|
|
actions = super().get_actions(request)
|
|
|
if 'delete_selected' in actions:
|