Esempio n. 1
0
    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

    def get_queryset(self, request):
        queryset = super(ProfileAdmin, self).get_queryset(request)
        queryset = queryset.select_related(u"user")
        return queryset


class UserAdminMixin(admin.ModelAdmin):
    def __init__(self, *args, **kwargs):
        # We don't want to change predecessor internal objects
        self.fieldsets = deepcopy(self.fieldsets)

        self.fieldsets[0][1][u"fields"] = list(self.fieldsets[0][1][u"fields"]) + [u"profile_field"]
        self.readonly_fields = list(self.readonly_fields) + [u"profile_field"]
        super(UserAdminMixin, self).__init__(*args, **kwargs)

    @decorate(short_description=u"Profile")
    def profile_field(self, user):
        profile = user.profile
        return admin_obj_format(profile)


admin.site.register(Profile, ProfileAdmin)
extend_model_admin(User, UserAdminMixin)
Esempio n. 2
0
    def has_delete_permission(self, request, obj=None):
        return False

    def get_queryset(self, request):
        queryset = super(InvitationSupplyAdmin, self).get_queryset(request)
        queryset = queryset.select_related(u'user')
        return queryset

class InvitationSupplyUserAdminMixin(admin.ModelAdmin):
    def __init__(self, *args, **kwargs):
        # We don't want to change predecessor internal objects
        self.fieldsets = deepcopy(self.fieldsets)

        self.fieldsets[0][1][u'fields'] = list(self.fieldsets[0][1][u'fields']) + [
                u'invitationsupply_field',
                ]
        self.readonly_fields = list(self.readonly_fields) + [
                u'invitationsupply_field',
                ]
        super(InvitationSupplyUserAdminMixin, self).__init__(*args, **kwargs)

    @decorate(short_description=u'Invitation supply')
    def invitationsupply_field(self, user):
        invitationsupply = user.invitationsupply
        return admin_obj_format(invitationsupply)


admin.site.register(Invitation, InvitationAdmin)
admin.site.register(InvitationSupply, InvitationSupplyAdmin)
extend_model_admin(User, InvitationSupplyUserAdminMixin)
Esempio n. 3
0
        elif message.type == Message.TYPES.INBOUND and message.processed:
            query = dict(email=message.pk, type=InforequestEmail.TYPES.UNDECIDED)
            url = u'%s?%s' % (reverse(u'admin:inforequests_inforequestemail_add'), urlencode(query))
            btn = format_html(u'<li><a href="{0}">{1}</a></li>', url, u'Assign to Inforequest')
            res = format_html(u'<ul class="object-tools">{0}</ul>', btn)
            return res
        else:
            return u'--'

    @decorate(short_description=u'Action')
    def action_field(self, message):
        action = try_except(lambda: message.action, None)
        return admin_obj_format(action)

    def has_delete_permission(self, request, obj=None):
        if obj:
            # Only messages that are not a part of an action may be deleted.
            action = try_except(lambda: obj.action, None)
            if action is not None:
                return False
        return super(MessageAdminMixin, self).has_delete_permission(request, obj)

    def get_queryset(self, request):
        queryset = super(MessageAdminMixin, self).get_queryset(request)
        queryset = queryset.select_related(u'action')
        queryset = queryset.prefetch_related(u'inforequest_set')
        return queryset

extend_model_admin(User, UserAdminMixin)
extend_model_admin(Message, MessageAdminMixin)
Esempio n. 4
0
        return False

    def get_queryset(self, request):
        queryset = super(ProfileAdmin, self).get_queryset(request)
        queryset = queryset.select_related(u'user')
        return queryset


class UserAdminMixin(admin.ModelAdmin):
    def __init__(self, *args, **kwargs):
        # We don't want to change predecessor internal objects
        self.fieldsets = deepcopy(self.fieldsets)

        self.fieldsets[0][1][u'fields'] = list(
            self.fieldsets[0][1][u'fields']) + [
                u'profile_field',
            ]
        self.readonly_fields = list(self.readonly_fields) + [
            u'profile_field',
        ]
        super(UserAdminMixin, self).__init__(*args, **kwargs)

    @decorate(short_description=u'Profile')
    def profile_field(self, user):
        profile = user.profile
        return admin_obj_format(profile)


admin.site.register(Profile, ProfileAdmin)
extend_model_admin(User, UserAdminMixin)