Esempio n. 1
0
class RTAdmin(RelatedFieldAdmin, LeafletGeoAdmin, GeolevelsAdmin):
    list_display = ('id', 'sort_province_by_name', 'sort_city_by_name',
                    'sort_subdistrict_by_name', 'sort_village_by_name', 'rw',
                    'name', 'note')
    raw_id_fields = ['rw']
    search_fields = [
        'rw__village__subdistrict__city__province__name',
        'rw__village__subdistrict__city__name',
        'rw__village__subdistrict__name', 'rw__village__name'
    ]  # No use searching RW by name
    form = RTForm

    sort_province_by_name = getter_for_related_field(
        'rw__village__subdistrict__city__province',
        admin_order_field='rw__village__subdistrict__province__name')

    sort_city_by_name = getter_for_related_field(
        'rw__village__subdistrict__city',
        admin_order_field='rw__village__subdistrict__city__name')

    sort_subdistrict_by_name = getter_for_related_field(
        'rw__village__subdistrict',
        admin_order_field='rw__village__subdistrict__name')

    sort_village_by_name = getter_for_related_field(
        'rw__village', admin_order_field='rw__village__name')
Esempio n. 2
0
class SubdistrictAdmin(RelatedFieldAdmin, LeafletGeoAdmin, GeolevelsAdmin):
    list_display = ('id', 'sort_province_by_name', 'sort_city_by_name', 'name',
                    'note')
    search_fields = ['city__province__name', 'city__name', 'name']
    form = SubdistrictForm

    sort_province_by_name = getter_for_related_field(
        'city__province', admin_order_field='city__province__name')

    sort_city_by_name = getter_for_related_field(
        'city', admin_order_field='city__name')
Esempio n. 3
0
class CityAdmin(RelatedFieldAdmin, LeafletGeoAdmin, GeolevelsAdmin):
    list_display = ('id', 'sort_province_by_name', 'name', 'note')
    search_fields = ['province__name', 'name']
    form = CityForm

    sort_province_by_name = getter_for_related_field(
        'province', admin_order_field='province__name')
Esempio n. 4
0
class ConcertAdmin(RelatedFieldAdmin):
    list_display = ('name', 'main_performer_link', 'main_performer__is_on_tour')
    list_select_related = ('main_performer',)

    main_performer__is_on_tour = getter_for_related_field('main_performer__is_on_tour', boolean=True)

    def main_performer_link(self, obj):
        url = reverse("admin:main_musician_change", args=[obj.main_performer.id])
        return format_html('<a href="%s">{}</a>', (url, escape(str(obj))))
    main_performer_link.short_description = "Main performer"
Esempio n. 5
0
class PackageTransactionAdmin(ExportMixin, RelatedFieldAdmin):
    resource_class = PackageTransactionResource
    list_display = (
        'id',
        'user_attendance',
        'created',
        'realized',
        'status',
        'author',
        'user_attendance__team__subsidiary',
        'user_attendance__team__subsidiary__company__name',
        't_shirt_size__name',
        'team_package__box__delivery_batch__id',
        'team_package__box__tracking_link',
    )
    team_package__box__delivery_batch__id = getter_for_related_field(
        'team_package__box__delivery_batch__id',
        short_description=_('ID krabice'))
    search_fields = (
        'id',
        'user_attendance__userprofile__nickname',
        'user_attendance__userprofile__user__first_name',
        'user_attendance__userprofile__user__last_name',
        'user_attendance__userprofile__user__username',
        'user_attendance__team__subsidiary__company__name',
    )
    list_filter = [
        campaign_filter_generator('user_attendance__campaign'),
        'status',
        'team_package__box__delivery_batch__id',
        'team_package__box__dispatched',
    ]
    raw_id_fields = [
        'user_attendance',
        'team_package',
    ]
    readonly_fields = (
        'author',
        'created',
        'updated_by',
    )
    list_max_show_all = 10000
    form = PackageTransactionForm

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        return queryset.select_related(
            'user_attendance__userprofile__user',
            'user_attendance__team__subsidiary__city',
            't_shirt_size__campaign',
        )
Esempio n. 6
0
class PackageTransactionAdmin(ExportMixin, RelatedFieldAdmin):
    resource_class = PackageTransactionResource
    list_display = (
        "id",
        "user_attendance",
        "created",
        "realized",
        "status",
        "author",
        "user_attendance__team__subsidiary",
        "user_attendance__team__subsidiary__company__name",
        "t_shirt_size__name",
        "team_package__box__delivery_batch__id",
        "team_package__box__tracking_link",
    )
    team_package__box__delivery_batch__id = getter_for_related_field(
        "team_package__box__delivery_batch__id", short_description=_("ID krabice")
    )
    search_fields = (
        "id",
        "user_attendance__userprofile__nickname",
        "user_attendance__userprofile__user__first_name",
        "user_attendance__userprofile__user__last_name",
        "user_attendance__userprofile__user__username",
        "user_attendance__team__subsidiary__company__name",
    )
    list_filter = [
        campaign_filter_generator("user_attendance__campaign"),
        "status",
        "team_package__box__delivery_batch__id",
        "team_package__box__dispatched",
    ]
    raw_id_fields = [
        "user_attendance",
        "team_package",
    ]
    readonly_fields = (
        "author",
        "created",
        "updated_by",
    )
    list_max_show_all = 10000
    form = PackageTransactionForm

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        return queryset.select_related(
            "user_attendance__userprofile__user",
            "user_attendance__team__subsidiary__city",
            "t_shirt_size__campaign",
        )
Esempio n. 7
0
class RWAdmin(RelatedFieldAdmin, LeafletGeoAdmin, GeolevelsAdmin):
    list_display = ('id', 'sort_province_by_name', 'sort_city_by_name',
                    'sort_subdistrict_by_name', 'sort_village_by_name', 'name',
                    'note')
    search_fields = [
        'village__subdistrict__city__province__name',
        'village__subdistrict__city__name', 'village__subdistrict__name',
        'village__name'
    ]
    form = RWForm

    sort_province_by_name = getter_for_related_field(
        'village__subdistrict__city__province',
        admin_order_field='village__subdistrict__city__province__name')

    sort_city_by_name = getter_for_related_field(
        'village__subdistrict__city',
        admin_order_field='village__subdistrict__city__name')

    sort_subdistrict_by_name = getter_for_related_field(
        'village__subdistrict', admin_order_field='village__subdistrict__name')

    sort_village_by_name = getter_for_related_field(
        'village', admin_order_field='village__name')
Esempio n. 8
0
class TeamPackageAdmin(ExportMixin, RelatedFieldAdmin, NestedModelAdmin):
    list_display = (
        'identifier',
        'dispatched',
        'box__dispatched',
        'box__identifier',
        'box__tracking_link',
        'box__name',
        'box__delivery_batch__id',
        'box__delivery_batch__created',
        'team__name',
        'team__subsidiary',
        'team__subsidiary__company',
    )
    box__identifier = getter_for_related_field(
        'box__identifier', short_description=_('ID krabice'))
    team__name = getter_for_related_field('team__name',
                                          short_description=_('Tým'))
    box__name = getter_for_related_field('box__name',
                                         short_description=_('Krabice'))
    list_filter = (
        campaign_filter_generator('box__delivery_batch__campaign'),
        'dispatched',
        'box__dispatched',
        ('box__delivery_batch__created', DateRangeFilter),
        'box__delivery_batch__id',
    )
    raw_id_fields = (
        'box',
        'team',
    )
    search_fields = (
        'id',
        'team__name',
        'team__subsidiary__address_street',
        'team__subsidiary__company__name',
        'box__id',
        'box__carrier_identification',
    )
    inlines = (NestedPackageTransactionInline, )

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        return queryset.select_related(
            'team__subsidiary__city',
            'box__subsidiary__city',
            'box__delivery_batch',
        )

    def get_search_results(self, request, queryset, search_term):
        search_term = search_term.strip()
        if re.match(IDENTIFIER_REGEXP, search_term):
            if search_term[0] == 'T':
                queryset = queryset.filter(id=search_term[1:])
                use_distinct = True
            elif search_term[0] == 'S':
                queryset = queryset.filter(box__id=search_term[1:])
                use_distinct = True
        else:
            queryset, use_distinct = super().get_search_results(
                request, queryset, search_term)
        return queryset, use_distinct
Esempio n. 9
0
class AlbumAdmin(RelatedFieldAdmin):
    list_display = ('name', 'artist', 'artist__first_name', 'artist__last_name', 'artist__full_name', 'artist__active', '__str__')

    artist__active = getter_for_related_field('artist__active', boolean=True)
Esempio n. 10
0
class TeamPackageAdmin(ExportMixin, RelatedFieldAdmin, NestedModelAdmin):
    list_display = (
        "identifier",
        "dispatched",
        "box__dispatched",
        "box__identifier",
        "box__tracking_link",
        "box__name",
        "box__delivery_batch__id",
        "box__delivery_batch__created",
        "team__name",
        "team__subsidiary",
        "team__subsidiary__company",
    )
    box__identifier = getter_for_related_field(
        "box__identifier", short_description=_("ID krabice")
    )
    team__name = getter_for_related_field("team__name", short_description=_("Tým"))
    box__name = getter_for_related_field("box__name", short_description=_("Krabice"))
    list_filter = (
        campaign_filter_generator("box__delivery_batch__campaign"),
        "dispatched",
        "box__dispatched",
        ("box__delivery_batch__created", DateRangeFilter),
        "box__delivery_batch__id",
    )
    raw_id_fields = (
        "box",
        "team",
    )
    search_fields = (
        "id",
        "team__name",
        "team__subsidiary__address_street",
        "team__subsidiary__company__name",
        "box__id",
        "box__carrier_identification",
    )
    inlines = (NestedPackageTransactionInline,)

    def get_queryset(self, request):
        queryset = super().get_queryset(request)
        return queryset.select_related(
            "team__subsidiary__city",
            "box__subsidiary__city",
            "box__delivery_batch",
        )

    def get_search_results(self, request, queryset, search_term):
        search_term = search_term.strip()
        if re.match(IDENTIFIER_REGEXP, search_term):
            if search_term[0] == "T":
                queryset = queryset.filter(id=search_term[1:])
                use_distinct = True
            elif search_term[0] == "S":
                queryset = queryset.filter(box__id=search_term[1:])
                use_distinct = True
        else:
            queryset, use_distinct = super().get_search_results(
                request, queryset, search_term
            )
        return queryset, use_distinct