~widelands-dev/widelands-website/trunk

477.1.2 by franku
corrected search of backlinks; added Django permissions to the admin site
1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3
4
"""Get acces to additional models which are not set by Django by default.
5
6
So Djangos orm is used when changing things, e.g. delete a permission.
7
"""
8
9
from django.contrib import admin
10
from django.contrib.auth.models import Permission
11
admin.site.register(Permission)
512.1.2 by franku
display users which are in a group to admin/auth/group
12
13
512.1.8 by franku
display groups/permissions to admin/auth/user
14
# Adjusted from: https://www.djangosnippets.org/snippets/1650/
15
"""Displays the users which are in a group to /admin/auth/group.
16
Displays groups and permissions to admin/auth/user."""
512.1.2 by franku
display users which are in a group to admin/auth/group
17
512.1.8 by franku
display groups/permissions to admin/auth/user
18
from django.contrib.auth.models import User, Group
19
from django.contrib.auth.admin import UserAdmin, GroupAdmin
512.1.2 by franku
display users which are in a group to admin/auth/group
20
from django.core.urlresolvers import reverse
21
22
512.1.8 by franku
display groups/permissions to admin/auth/user
23
def roles(self):
24
    # Groups
25
    text = [x.name for x in self.groups.all()]
26
    # Permissions
27
    if self.user_permissions.count():
28
        text += ['has perm.']
29
    value = ', '.join(text)
30
    return value
532.1.1 by franku
converted to python 3.6 using 2to3 script
31
roles.short_description = 'Groups/Permissions'
512.1.8 by franku
display groups/permissions to admin/auth/user
32
33
512.1.2 by franku
display users which are in a group to admin/auth/group
34
def persons(self):
35
    return ', '.join(['<a href="%s">%s</a>' % (reverse('admin:auth_user_change', args=(x.id,)), x.username) for x in self.user_set.all().order_by('username')])
36
persons.allow_tags = True
37
512.1.8 by franku
display groups/permissions to admin/auth/user
38
513.3.1 by franku
fix showing deleted username in search results
39
def deleted(self):
40
    return '' if self.wlprofile.deleted==False else 'Yes'
532.1.1 by franku
converted to python 3.6 using 2to3 script
41
deleted.short_description = 'Deleted himself'
513.3.1 by franku
fix showing deleted username in search results
42
43
512.1.2 by franku
display users which are in a group to admin/auth/group
44
class GroupAdmin(GroupAdmin):
45
    list_display = ['name', persons]
46
    list_display_links = ['name']
47
48
49
admin.site.unregister(Group)
50
admin.site.register(Group, GroupAdmin)
512.1.8 by franku
display groups/permissions to admin/auth/user
51
52
53
class UserAdmin(UserAdmin):
54
    list_display = ('username', 'email', 'date_joined', 'last_login',
513.3.1 by franku
fix showing deleted username in search results
55
                    'is_active', deleted, 'is_staff', roles)
512.1.8 by franku
display groups/permissions to admin/auth/user
56
    ordering = ('-date_joined',)
57
58
59
admin.site.unregister(User)
60
admin.site.register(User, UserAdmin)