~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to mainpage/admin.py

  • Committer: Holger Rapp
  • Date: 2019-06-21 18:34:42 UTC
  • mfrom: (540.1.3 update_ops_script)
  • Revision ID: sirver@gmx.de-20190621183442-y2ulybzr0rdvfefd
Adapt the update script for the new server.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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)
 
12
 
 
13
 
 
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."""
 
17
 
 
18
from django.contrib.auth.models import User, Group
 
19
from django.contrib.auth.admin import UserAdmin, GroupAdmin
 
20
from django.core.urlresolvers import reverse
 
21
 
 
22
 
 
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
 
31
roles.short_description = 'Groups/Permissions'
 
32
 
 
33
 
 
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
 
 
38
 
 
39
def deleted(self):
 
40
    return '' if self.wlprofile.deleted==False else 'Yes'
 
41
deleted.short_description = 'Deleted himself'
 
42
 
 
43
 
 
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)
 
51
 
 
52
 
 
53
class UserAdmin(UserAdmin):
 
54
    list_display = ('username', 'email', 'date_joined', 'last_login',
 
55
                    'is_active', deleted, 'is_staff', roles)
 
56
    ordering = ('-date_joined',)
 
57
 
 
58
 
 
59
admin.site.unregister(User)
 
60
admin.site.register(User, UserAdmin)