search_fields = ('name', 'issuer__name') readonly_fields = ('created_by', 'created_at', 'created_by', 'entity_id', 'slug') raw_id_fields = ('issuer',) filter_horizontal = ('pathways',) fieldsets = ( ('Metadata', { 'fields': ('is_active', 'created_by', 'created_at', 'entity_id', 'slug'), 'classes': ('collapse',) }), (None, { 'fields': ('name', 'description', 'issuer', 'pathways') }), ) inlines = [RecipientGroupMembershipInline] badgr_admin.register(RecipientGroup, RecipientGroupAdmin) class RecipientProfileAdmin(ModelAdmin): list_display = ( 'public', 'recipient_identifier', 'display_name', 'entity_id') search_fields = ('recipient_identifier', 'display_name',) raw_id_fields = ('badge_user',) readonly_fields = ('created_by', 'created_at', 'entity_id', 'slug') fieldsets = ( ('Metadata', { 'fields': ('is_active', 'created_by', 'created_at', 'entity_id', 'slug',), 'classes': ('collapse',) }), (None, { 'fields': ('public', 'recipient_identifier', 'display_name', 'badge_user') }),
from django.contrib.admin import ModelAdmin from mainsite.admin import badgr_admin from .models import Saml2Configuration, Saml2Account class Saml2ConfigurationModelAdmin(ModelAdmin): model = Saml2Configuration readonly_fields = ('acs_url', 'sp_metadata_url') fields = ( 'metadata_conf_url', 'cached_metadata', 'slug', 'acs_url', 'sp_metadata_url', 'use_signed_authn_request', ) badgr_admin.register(Saml2Configuration, Saml2ConfigurationModelAdmin) class Saml2AccountModelAdmin(ModelAdmin): raw_id_fields = ('user', ) model = Saml2Account badgr_admin.register(Saml2Account, Saml2AccountModelAdmin)
name='Superuser') if not request.user.has_perm( u'badgeuser.has_institution_scope'): form_field.queryset = form_field.queryset.exclude( name='Instellings Admin') if not request.user.has_perm( u'badgeuser.has_faculty_scope'): form_field.queryset = form_field.queryset.exclude( name='Faculteits Admin') return form_field def faculties(self, obj): return [f.name for f in obj.faculty.all()] badgr_admin.register(BadgeUser, BadgeUserAdmin) class BadgeUserProxyAdmin(BadgeUserAdmin): actions = ['delete_selected'] readonly_fields = ('entity_id', 'date_joined', 'last_login', 'username', 'entity_id', 'agreed_terms_version') list_display = ('email', 'first_name', 'last_name', 'is_active', 'is_staff', 'entity_id', 'date_joined', 'faculties') list_filter = ('is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') fieldsets = ( ('Metadata', { 'fields': ( 'entity_id', 'username',
admin_list_linkify('institution', 'name')) list_filter = ('is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') search_fields = ('email', 'first_name', 'last_name', 'username', 'entity_id') fieldsets = ( ('Metadata', {'fields': ('entity_id', 'username', 'date_joined',), 'classes': ('collapse',)}), (None, {'fields': ('email', 'first_name', 'last_name')}), ('Access', {'fields': ('is_active', 'is_staff', 'password')}), ('Permissions', {'fields': ('groups',)}), ) filter_horizontal = ('groups', 'user_permissions', 'faculty',) inlines = [ EmailAddressInline, ] badgr_admin.register(BadgeUser, BadgeUserAdmin) class EmailAddressVariantAdmin(ModelAdmin): search_fields = ('canonical_email', 'email',) list_display = ('email', 'canonical_email',) raw_id_fields = ('canonical_email',) badgr_admin.register(EmailAddressVariant, EmailAddressVariantAdmin) class TermsInlineForm(ModelForm): class Meta: model = Terms fields = ('terms_type', 'version', 'entity_id')
from django import forms from django.contrib import admin from mainsite.admin import badgr_admin from .models import Theme, get_current_templates class ThemeForm(forms.ModelForm): class Meta: model = Theme fields = '__all__' def __init__(self, *args, **kwargs): super(ThemeForm, self).__init__(*args, **kwargs) self.fields['terms_and_conditions_template'].widget = forms.Select(choices=get_current_templates()) self.fields['terms_and_conditions_template_en'].widget = forms.Select(choices=get_current_templates()) class ThemeAdmin(admin.ModelAdmin): form = ThemeForm badgr_admin.register(Theme, ThemeAdmin)
raw_id_fields = ('issuer', ) filter_horizontal = ('pathways', ) fieldsets = ( ('Metadata', { 'fields': ('is_active', 'created_by', 'created_at', 'entity_id', 'slug'), 'classes': ('collapse', ) }), (None, { 'fields': ('name', 'description', 'issuer', 'pathways') }), ) inlines = [RecipientGroupMembershipInline] badgr_admin.register(RecipientGroup, RecipientGroupAdmin) class RecipientProfileAdmin(ModelAdmin): list_display = ('public', 'recipient_identifier', 'display_name', 'entity_id') search_fields = ( 'recipient_identifier', 'display_name', ) raw_id_fields = ('badge_user', ) readonly_fields = ('created_by', 'created_at', 'entity_id', 'slug') fieldsets = ( ('Metadata', { 'fields': ( 'is_active',
### # # Local Issuer/Badges # ### class LocalIssuerAdmin(IssuerAdmin): readonly_fields = ('created_at',) fieldsets = ( ('Metadata', {'fields': ('created_at',), 'classes': ("collapse",)}), (None, {'fields': ('image', 'name', 'slug', 'created_by')}), ('JSON', {'fields': ('json',)}), ) badgr_admin.register(LocalIssuer, LocalIssuerAdmin) class LocalBadgeClassAdmin(BadgeClassAdmin): readonly_fields = ('created_at',) badgr_admin.register(LocalBadgeClass, LocalBadgeClassAdmin) class LocalBadgeInstanceAdmin(ModelAdmin): readonly_fields = ('created_at', 'created_by', 'image', ) list_display = ('badge_image', 'recipient_identifier', 'badgeclass', 'issuer') list_display_links = ('badge_image', 'recipient_identifier', ) list_filter = ('created_at',) search_fields = ('badgeclass__name', 'issuer__name') fieldsets = ( ('Metadata', {'fields': ('created_by', 'created_at',), 'classes': ()}),
def login_backoff(self, obj): out = [] for email in obj.all_verified_recipient_identifiers: cache_key = backoff_cache_key(username=email) backoff = cache.get(cache_key) if backoff is not None: out.append("<div><strong>{email}</strong>: <span>{until}</span> <span>({count} attempts)</span></div>".format( email=email, until=backoff.get('until').astimezone(timezone.get_current_timezone()).strftime("%Y-%m-%d %H:%M:%S"), count=backoff.get('count') )) if len(out): return "".join(out) login_backoff.allow_tags = True badgr_admin.register(BadgeUser, BadgeUserAdmin) class EmailAddressVariantAdmin(ModelAdmin): search_fields = ('canonical_email', 'email',) list_display = ('email', 'canonical_email',) raw_id_fields = ('canonical_email',) badgr_admin.register(EmailAddressVariant, EmailAddressVariantAdmin) class TermsVersionAdmin(ModelAdmin): list_display = ('version','created_at','is_active') readonly_fields = ('created_at','created_by','updated_at','updated_by', 'latest_terms_version') fieldsets = ( ('Metadata', {
from mainsite.admin import badgr_admin from .models import (BackpackCollection, ) ### # # Collection # ### class CollectionInstanceInline(TabularInline): model = BackpackCollection.assertions.through extra = 0 raw_id_fields = ('badgeinstance',) class CollectionAdmin(ModelAdmin): list_display = ('created_by', 'name', 'entity_id', ) search_fields = ('created_by__email', 'name', 'entity_id') fieldsets = ( (None, {'fields': ('created_by', 'name', 'entity_id', 'description', 'share_hash')}), ) readonly_fields = ('created_by', 'entity_id') inlines = [ CollectionInstanceInline, ] pass badgr_admin.register(BackpackCollection, CollectionAdmin)
from staff.models import InstitutionStaff, FacultyStaff, IssuerStaff, BadgeClassStaff class InstitutionStaffAdmin(ModelAdmin): list_display = ('user', admin_list_linkify('institution', 'name'), 'may_create', 'may_read', 'may_update', 'may_delete', 'may_award', 'may_sign', 'may_administrate_users') class FacultyStaffAdmin(ModelAdmin): list_display = ('user', admin_list_linkify('faculty', 'name'), 'may_create', 'may_read', 'may_update', 'may_delete', 'may_award', 'may_sign', 'may_administrate_users') class IssuerStaffAdmin(ModelAdmin): list_display = ('user', admin_list_linkify('issuer', 'name'), 'may_create', 'may_read', 'may_update', 'may_delete', 'may_award', 'may_sign', 'may_administrate_users') class BadgeclassStaffAdmin(ModelAdmin): list_display = ('user', admin_list_linkify('badgeclass', 'name'), 'may_create', 'may_read', 'may_update', 'may_delete', 'may_award', 'may_sign', 'may_administrate_users') badgr_admin.register(InstitutionStaff, InstitutionStaffAdmin) badgr_admin.register(FacultyStaff, FacultyStaffAdmin) badgr_admin.register(IssuerStaff, IssuerStaffAdmin) badgr_admin.register(BadgeClassStaff, BadgeclassStaffAdmin)
from django.contrib import admin from ims.models import IMSArchive, LTIApp, LTITenant from mainsite.admin import badgr_admin class IMSArchiveAdmin(admin.ModelAdmin): list_display = ('__str__', 'created_at', 'metadata_tag') class LTIAppAdmin(admin.ModelAdmin): list_display = ('__str__', 'description', 'privacy_level', 'created_at', 'modified_at') class LTITenantAdmin(admin.ModelAdmin): list_display = ('__str__', 'client_key', 'client_secret', 'get_lti_config_url', 'created_at', 'modified_at') prepopulated_fields = {'slug': ('organization', )} badgr_admin.register(IMSArchive, IMSArchiveAdmin) badgr_admin.register(LTIApp, LTIAppAdmin) badgr_admin.register(LTITenant, LTITenantAdmin)
readonly_fields = ('created_at', ) fieldsets = ( ('Metadata', { 'fields': ('created_at', ), 'classes': ("collapse", ) }), (None, { 'fields': ('image', 'name', 'slug', 'created_by') }), ('JSON', { 'fields': ('json', ) }), ) badgr_admin.register(LocalIssuer, LocalIssuerAdmin) class LocalBadgeClassAdmin(BadgeClassAdmin): readonly_fields = ('created_at', ) badgr_admin.register(LocalBadgeClass, LocalBadgeClassAdmin) class LocalBadgeInstanceAdmin(ModelAdmin): readonly_fields = ( 'created_at', 'created_by', 'image', )
('JSON', { 'fields': ('json', ) }), ) def img(self, obj): try: return u'<img src="{}" width="32"/>'.format(obj.image.url) except ValueError: return obj.image img.short_description = 'Image' img.allow_tags = True badgr_admin.register(Issuer, IssuerAdmin) class BadgeClassAdmin(ModelAdmin): readonly_fields = ('created_at', 'created_by') list_display = ('badge_image', 'name', 'slug', 'issuer') list_display_links = ('badge_image', 'name') list_filter = ('created_at', ) search_fields = ( 'name', 'slug', 'issuer__name', ) fieldsets = ( ('Metadata', { 'fields': (
# Created by [email protected] on 5/11/16. import basic_models from django.contrib.admin import ModelAdmin, TabularInline from mainsite.admin import badgr_admin from pathway.models import Pathway, PathwayElement, PathwayElementBadge class PathwayAdmin(ModelAdmin): list_display = ('name', 'issuer', 'jsonld_id') pass badgr_admin.register(Pathway, PathwayAdmin) class PathwayElementBadgeInline(TabularInline): model = PathwayElementBadge extra = 0 fields = ('element', 'badgeclass', 'ordering') raw_id_fields = ('badgeclass', 'element') class PathwayElementAdmin(ModelAdmin): list_display = ('name', 'slug', 'pathway_name', 'issuer', 'is_active', 'created_at') list_filter = ('is_active', 'created_at') search_fields = ( 'name', 'slug', 'description', )
from django.contrib.admin import ModelAdmin from mainsite.admin import badgr_admin from .models import BadgeUser class BadgeUserAdmin(ModelAdmin): readonly_fields = ('date_joined', 'last_login', 'username', ) list_display = ('email', 'first_name', 'last_name', 'is_active', 'is_staff', 'last_login', 'date_joined') list_filter = ('is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') search_fields = ('email', 'first_name', 'last_name', 'username') fieldsets = ( ('Metadata', {'fields': ('username', 'last_login', 'date_joined',), 'classes': ('collapse',)}), (None, {'fields': ('email', 'first_name', 'last_name', )}), ('Access', {'fields': ('is_active', 'is_staff', 'is_superuser', 'password')}), ('Permissions', {'fields': ('groups','user_permissions')}), ) pass badgr_admin.register(BadgeUser, BadgeUserAdmin)
def login_backoff(self, obj): out = [] for email in obj.all_recipient_identifiers: cache_key = backoff_cache_key(username=email) backoff = cache.get(cache_key) if backoff is not None: out.append("<div><strong>{email}</strong>: <span>{until}</span> <span>({count} attempts)</span></div>".format( email=email, until=backoff.get('until').astimezone(timezone.get_current_timezone()).strftime("%Y-%m-%d %H:%M:%S"), count=backoff.get('count') )) if len(out): return "".join(out) login_backoff.allow_tags = True badgr_admin.register(BadgeUser, BadgeUserAdmin) class EmailAddressVariantAdmin(ModelAdmin): search_fields = ('canonical_email', 'email',) list_display = ('email', 'canonical_email',) raw_id_fields = ('canonical_email',) badgr_admin.register(EmailAddressVariant, EmailAddressVariantAdmin) class TermsVersionAdmin(ModelAdmin): list_display = ('version','created_at','is_active') readonly_fields = ('created_at','created_by','updated_at','updated_by', 'latest_terms_version') fieldsets = ( ('Metadata', {
backoff = cache.get(cache_key) if backoff is not None: out.append( "<div><strong>{email}</strong>: <span>{until}</span> <span>({count} attempts)</span></div>" .format(email=email, until=backoff.get('until').astimezone( timezone.get_current_timezone()).strftime( "%Y-%m-%d %H:%M:%S"), count=backoff.get('count'))) if len(out): return "".join(out) login_backoff.allow_tags = True badgr_admin.register(BadgeUser, BadgeUserAdmin) class EmailAddressVariantAdmin(ModelAdmin): search_fields = ( 'canonical_email', 'email', ) list_display = ( 'email', 'canonical_email', ) raw_id_fields = ('canonical_email', ) badgr_admin.register(EmailAddressVariant, EmailAddressVariantAdmin)
from django.contrib import admin from lti_edu.models import LtiPayload, StudentsEnrolled, LtiClient, ResourceLinkBadge from mainsite.admin import badgr_admin from mainsite.utils import admin_list_linkify @admin.register(LtiPayload) class LtiPayloadAdmin(admin.ModelAdmin): list_display = ['date_created', 'data'] badgr_admin.register(LtiPayload, LtiPayloadAdmin) @admin.register(ResourceLinkBadge) class ResourceLinkBadgeAdmin(admin.ModelAdmin): list_display = ['date_created', 'resource_link', 'issuer', 'badge_class'] badgr_admin.register(ResourceLinkBadge, ResourceLinkBadgeAdmin) @admin.register(StudentsEnrolled) class StudentsEnrolledAdmin(admin.ModelAdmin): list_display = ('date_created', 'date_consent_given', 'date_awarded', 'badge_instance', admin_list_linkify('badge_class', 'name'), admin_list_linkify('user', 'full_name')) badgr_admin.register(StudentsEnrolled, StudentsEnrolledAdmin)
list_filter = ('is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') search_fields = ('email', 'first_name', 'last_name', 'username') fieldsets = ( ('Metadata', { 'fields': ( 'username', 'last_login', 'date_joined', ), 'classes': ('collapse', ) }), (None, { 'fields': ( 'email', 'first_name', 'last_name', ) }), ('Access', { 'fields': ('is_active', 'is_staff', 'is_superuser', 'password') }), ('Permissions', { 'fields': ('groups', 'user_permissions') }), ) pass badgr_admin.register(BadgeUser, BadgeUserAdmin)
from externaltools.models import ExternalTool, ExternalToolLaunchpoint from mainsite.admin import badgr_admin class LaunchpointInline(TabularInline): model = ExternalToolLaunchpoint extra = 0 fields = ('launchpoint', 'label', 'launch_url', 'icon_url') class ExternalToolAdmin(ModelAdmin): readonly_fields = ('created_at', 'created_by', 'updated_at', 'updated_by', 'entity_id') list_display = ('name', 'entity_id', 'config_url', 'created_at') list_filter = ('created_at', ) search_fields = ('name', 'config_url', 'xml_config', 'client_id') fieldsets = (('Metadata', { 'fields': ('created_by', 'created_at', 'updated_by', 'updated_at', 'entity_id'), 'classes': ("collapse", ) }), (None, { 'fields': ('is_active', 'requires_user_activation', 'name', 'config_url', 'client_id', 'client_secret') }), ('Config', { 'fields': ('xml_config', ) })) inlines = [LaunchpointInline] badgr_admin.register(ExternalTool, ExternalToolAdmin)
# Created by [email protected] on 5/11/16. import basic_models from django.contrib.admin import ModelAdmin, TabularInline from mainsite.admin import badgr_admin from pathway.models import Pathway, PathwayElement, PathwayElementBadge class PathwayAdmin(ModelAdmin): list_display = ('name', 'issuer', 'jsonld_id') pass badgr_admin.register(Pathway, PathwayAdmin) class PathwayElementBadgeInline(TabularInline): model = PathwayElementBadge extra = 0 fields = ('element', 'badgeclass', 'ordering') raw_id_fields = ('badgeclass', 'element') class PathwayElementAdmin(ModelAdmin): list_display = ('name', 'slug', 'pathway_name', 'issuer', 'is_active', 'created_at') list_filter = ('is_active', 'created_at') search_fields = ('name', 'slug', 'description',) readonly_fields = ('created_by', 'created_at', 'updated_by', 'slug') raw_id_fields = ('completion_badgeclass', 'pathway', 'parent_element') fieldsets = ( ('Metadata', { 'fields': ('is_active', 'created_by', 'created_at', 'updated_by', 'slug'), 'classes': ('collapse',)
def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "faculty": if not request.user.is_superuser: if request.user.has_perm('badgeuser.has_institution_scope'): kwargs["queryset"] = Faculty.objects.filter( institution=request.user.institution) elif request.user.has_perm('badgeuser.has_faculty_scope'): kwargs["queryset"] = request.user.faculty.get_queryset() else: kwargs["queryset"] = Faculty.objects.none() return super(IssuerAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) badgr_admin.register(Issuer, IssuerAdmin) class BadgeClassAlignmentInline(TabularInline): model = BadgeClassAlignment extra = 0 fields = ('target_name', 'target_url', 'target_description', 'target_framework', 'target_code') class BadgeClassTagInline(TabularInline): model = BadgeClassTag extra = 0 fields = ('name', )
class ExternalToolInline(TabularInline): model = ExternalToolUserActivation fk_name = 'user' fields = ('externaltool',) extra = 0 class BadgeUserAdmin(ModelAdmin): readonly_fields = ('entity_id', 'date_joined', 'last_login', 'username', 'entity_id',) list_display = ('email', 'first_name', 'last_name', 'is_active', 'is_staff', 'entity_id', 'date_joined') list_filter = ('is_active', 'is_staff', 'is_superuser', 'date_joined', 'last_login') search_fields = ('email', 'first_name', 'last_name', 'username', 'entity_id') fieldsets = ( ('Metadata', {'fields': ('entity_id', 'username', 'date_joined',), 'classes': ('collapse',)}), (None, {'fields': ('email', 'first_name', 'last_name', 'badgrapp')}), ('Access', {'fields': ('is_active', 'is_staff', 'is_superuser', 'password')}), ('Permissions', {'fields': ('groups', 'user_permissions')}), ) inlines = [ ExternalToolInline ] badgr_admin.register(BadgeUser, BadgeUserAdmin) class EmailAddressVariantAdmin(ModelAdmin): search_fields = ('canonical_email', 'email',) list_display = ('email', 'canonical_email',) raw_id_fields = ('canonical_email',) badgr_admin.register(EmailAddressVariant, EmailAddressVariantAdmin)
# Collection # ### class CollectionInstanceInline(TabularInline): model = BackpackCollection.assertions.through extra = 0 raw_id_fields = ('badgeinstance', ) class CollectionAdmin(ModelAdmin): list_display = ( 'created_by', 'name', 'entity_id', ) search_fields = ('created_by__email', 'name', 'entity_id') fieldsets = ((None, { 'fields': ('created_by', 'name', 'entity_id', 'description', 'share_hash') }), ) readonly_fields = ('created_by', 'entity_id') inlines = [ CollectionInstanceInline, ] pass badgr_admin.register(BackpackCollection, CollectionAdmin)
from django.contrib import admin from mainsite.admin import badgr_admin from .models import Institution, Faculty from badgeuser.admin import TermsInline from mainsite.utils import admin_list_linkify class InstitutionAdmin(admin.ModelAdmin): readonly_fields = ('entity_id', 'created_by', 'updated_by') list_display = ('name_english', 'name_dutch', 'identifier', 'brin') inlines = [TermsInline] class FacultyAdmin(admin.ModelAdmin): list_display = ('name_english', 'name_dutch') readonly_fields = ('entity_id', 'created_by', 'updated_by', 'institution') list_display = ('name_english', 'entity_id', admin_list_linkify('institution', 'name')) badgr_admin.register(Institution, InstitutionAdmin) badgr_admin.register(Faculty, FacultyAdmin)
class LaunchpointInline(TabularInline): model = ExternalToolLaunchpoint extra = 0 fields = ('launchpoint', 'label', 'launch_url', 'icon_url') class ExternalToolAdmin(ModelAdmin): readonly_fields = ('created_at', 'created_by', 'updated_at', 'updated_by', 'entity_id') list_display = ('name', 'entity_id', 'config_url', 'created_at') list_filter = ('created_at',) search_fields = ('name', 'config_url', 'xml_config', 'client_id') fieldsets = ( ('Metadata', { 'fields': ('created_by', 'created_at', 'updated_by', 'updated_at', 'entity_id'), 'classes': ("collapse",) }), (None, { 'fields': ('is_active', 'requires_user_activation', 'name', 'config_url', 'client_id', 'client_secret') }), ('Config', { 'fields': ('xml_config',) }) ) inlines = [ LaunchpointInline ] badgr_admin.register(ExternalTool, ExternalToolAdmin)
def img(self, obj): try: return u'<img src="{}" width="32"/>'.format(obj.image.url) except ValueError: return obj.image img.short_description = 'Image' img.allow_tags = True def redirect_badgeclasses(self, request, obj): return HttpResponseRedirect( reverse('admin:issuer_badgeclass_changelist') + '?issuer__id={}'.format(obj.id) ) redirect_badgeclasses.label = "BadgeClasses" redirect_badgeclasses.short_description = "See this issuer's defined BadgeClasses" badgr_admin.register(Issuer, IssuerAdmin) class BadgeClassAlignmentInline(TabularInline): model = BadgeClassAlignment extra = 0 fields = ('target_name','target_url','target_description', 'target_framework','target_code') class BadgeClassTagInline(TabularInline): model = BadgeClassTag extra = 0 fields = ('name',) class BadgeClassExtensionInline(TabularInline):