Example #1
0
#    You should have received a copy of the GNU Affero General Public License
#    along with Inboxen.  If not, see <http://www.gnu.org/licenses/>.
##

from django.contrib import admin
from django.contrib.auth import get_user_model
from django.db.models import Q

from blog import models
from inboxen.admin import site


class BlogAdmin(admin.ModelAdmin):
    list_display = ("subject", "author", "date", "published")
    readonly_fields = ("rendered_body", "date", "modified")

    def published(self, obj):
        return not obj.draft
    published.short_description = "Published?"
    published.boolean = True

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'author':
            kwargs["initial"] = request.user.id
            kwargs["queryset"] = get_user_model().objects.filter(Q(is_staff=True) | Q(is_superuser=True))

        return super(BlogAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)


site.register(models.BlogPost, BlogAdmin)
Example #2
0
from tickets import models
from inboxen.admin import site


class ResponseInline(admin.TabularInline):
    model = models.Response
    extra = 0
    readonly_fields = ("render_body", "date",)

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'author':
            kwargs["initial"] = request.user.id
            kwargs["queryset"] = get_user_model().objects.filter(Q(is_staff=True) | Q(is_superuser=True))

        return super(ResponseInline, self).formfield_for_foreignkey(db_field, request, **kwargs)


class QuestionAdmin(admin.ModelAdmin):
    actions = None
    list_display = ("subject", "author", "status")
    inlines = (ResponseInline,)
    readonly_fields = ("date", "last_modified", "render_body")

    def get_readonly_fields(self, request, obj=None):
        if obj is not None:
            return self.readonly_fields + ("author", "body", "subject")
        return self.readonly_fields


site.register(models.Question, QuestionAdmin)
Example #3
0
from django.contrib.auth import get_user_model
from django.db.models import Q

from termsofservice import models
from inboxen.admin import site


class TOSAdmin(admin.ModelAdmin):
    list_display = ("published", "last_modified")
    readonly_fields = ("rendered_text", "last_modified", "diff")
    exclude = ("diff", )

    def get_readonly_fields(self, request, obj=None):
        if obj is not None and obj.published:
            return self.readonly_fields + ("text", )
        return self.readonly_fields


class StaffProfileAdmin(admin.ModelAdmin):
    readonly_fields = ("rendered_bio", )

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'user':
            kwargs["initial"] = request.user.id
            kwargs["queryset"] = get_user_model().objects.filter(Q(is_staff=True) | Q(is_superuser=True))

        return super(StaffProfileAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

site.register(models.TOS, TOSAdmin)
site.register(models.StaffProfile, StaffProfileAdmin)