class CompetitionAdmin(admin.ModelAdmin): form = select2_modelform(Competition) list_display = ('name', 'organizers_group', 'get_sites') def get_sites(self, obj): return ', '.join(force_text(x) for x in obj.sites.all()) get_sites.short_description = 'doména súťaže'
class AttendanceAdmin(admin.ModelAdmin): fields = ( 'member', ('session_start', 'session_end'), ) select2 = select2_modelform(Attendance, attrs={'width': '250px'}) form = select2
class AttendanceLogAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): fields = (('member', 'date', 'duration'), ('modules', 'lastSeen'), 'sessions') list_display = ('member', 'date', 'lastSeen', 'duration') select2 = select2_modelform(Log, attrs={'width': '250px'}) form = select2
class PlayerAdmin(admin.ModelAdmin): form = select2_modelform(models.Player, attrs={'width': '250px'}) date_hierarchy = 'birth' list_display = ('__str__', 'vk_link', 'birth') list_editable = ('vk_link', ) list_filter = ('history', 'basePosition') search_fields = ['lastName']
class FacturaAdmin(AdminModel): search_fields = [ 'cliente__numero_identificacion', 'cliente__nombres', 'cliente__apellidos' ] list_filter = ['contado', 'credito', 'pagada'] list_display = [ 'factura_numero', 'fecha_compra', 'cliente', 'contado', 'credito', 'pagada', 'total', 'abonos_pagados', 'saldo_pendiente' ] fieldsets = ( ('Forma de Pago', { 'fields': ('contado', 'credito', 'fecha_pago') }), ('Información de la Factura', { 'fields': ('fecha_compra', 'cliente', 'total') }), ) readonly_fields = [ 'total', 'creado_por', 'fecha_creacion', 'ip_creacion', 'modificado_por', 'fecha_modificacion', 'ip_modificacion' ] inlines = [ProductoVentaInline] form = select2_modelform(Factura, attrs={'width': '220px'}) actions = ['generar_pdf'] def generar_pdf(self, request, queryset): id = queryset[0].id factura_id = Factura.encryptId(id) url = reverse('facturacion:factura_pdf', kwargs={'factura_id': factura_id}) return HttpResponseRedirect(url) generar_pdf.short_description = "Generar recibo"
class EstabelecimentoAdmin(SuperModelAdmin): fieldsets = [ ('Dados Gerais', { 'classes': ('grp-collapse grp-open', ), 'fields': [('nome', 'usuario')], }), (u'Endereço', { 'classes': ('grp-collapse grp-open', ), 'fields': [('rua', 'complemento'), ('bairro', 'numero'), ('cep'), ('municipio', 'estado')], }), ] list_display = ['nome', 'usuario'] list_filter = ['usuario'] search_fields = ['nome'] form = select2_modelform(Estabelecimento, attrs={'width': '250px'}) inlines = [MesaInline, FormaPagamentoInline] def get_readonly_fields(self, request, obj=None): if obj: # editing an existing object return self.readonly_fields + ('usuario', ) return self.readonly_fields def get_form(self, request, obj=None, **kwargs): current_user = request.user if request.user.is_superuser: self.exclude = ('usuario', ) form = super(EstabelecimentoAdmin, self).get_form(request, obj, **kwargs) return form
class FormAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): fieldsets = [ ('Basic Details', { 'fields': [ 'name', 'admins', 'submissionDeadline', ('allowMultiple', 'admissionLimit', 'isActive'), ] }), ('Form Fields', { 'fields': ['formFields'] }), ] list_display = ('name', 'creator', 'lastEditTime', 'lastEditor', 'isActive', 'allowMultiple', 'submissionDeadline', 'admissionLimit') select2 = select2_modelform(Form, attrs={'width': '250px'}) inlines = (FormSlotInline, ) form = select2 resource_class = FormResource def save_model(self, request, obj, form, change): if not obj.creator: obj.creator = request.user obj.creationTime = datetime.now() obj.lastEditor = request.user obj.lastEditTime = datetime.now() obj.save()
class ItemPedidoInline(SuperInlineModelAdmin, admin.TabularInline, SortableInline): model = ItemPedido form = select2_modelform(ItemPedido, attrs={'width': '250px'}) exclude = ('position', ) sortable_field_name = 'position' extra = 1
class GroupAdmin(admin.ModelAdmin): fields = (('name', 'description'), 'members') search_fields = ['name', 'members'] list_display = ('name', 'description') list_filter = ('name', 'members') select2 = select2_modelform(Group, attrs={'width': '250px'}) form = select2
class sp_inline(admin.TabularInline): model = SocialProfile extra = 0 select2 = select2_modelform(SocialProfile, attrs={'width': '250px'}) form = select2 def has_add_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True def has_change_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True def has_delete_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True
class PersonaliseByCountryPlugin(PersonaliseByPluginBase): """ This plugin allows personalisation based on the visitor's country code. Use of this requires a header with the county code to be provided. Either through an upstream proxy or by a middleware. """ model = PersonaliseByCountryPluginModel name = _('by country') # # If django-easy-select2 is installed, we can greatly enhance the # useability of this change form. # try: from easy_select2 import select2_modelform form = select2_modelform(PersonaliseByCountryPluginModel, attrs={'width': '250px'}) except ImportError: pass def is_context_appropriate(self, context, instance): request = context.get('request') if request: code = get_country_from_request(request) else: code = None return (code == instance.country_code)
class CountrySegmentPlugin(SegmentPluginBase): ''' This plugin allows segmentation based on the visitor's IP addresses associated country code. Use of this segment requires the use of the 'resolve_country_code_middleware' provided in this distribution. This middleware, in turn, depends on django.contrib.geo_ip and MaxMind's GeoLite dataset or similar. ''' model = CountrySegmentPluginModel name = _('Segment by country') # # If django-easy-select2 is installed, we can greatly enhance the # useability of this change form. # try: from easy_select2 import select2_modelform form = select2_modelform(CountrySegmentPluginModel, attrs={'width': '250px'}) except: pass def is_context_appropriate(self, context, instance): try: request = context['request'] code = request.META['COUNTRY_CODE'] except: code = None return (code == instance.country_code)
class PhotoAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): fields = [('uploader', 'date'), 'image', 'caption'] list_display = ('caption', 'uploader', 'date') list_filter = ['date'] search_fields = ['uploader'] select2 = select2_modelform(Photo, attrs={'width': '250px'}) form = select2
class LeaveRecordAdmin(admin.ModelAdmin): fields = [('member', 'approver', 'type'), ('start_date', 'end_date'), 'reason'] list_display = ('member', 'approver', 'type', 'start_date', 'end_date') list_filter = ('type', ) select2 = select2_modelform(LeaveRecord, attrs={'width': '250px'}) form = select2 def get_queryset(self, request): qs = super(LeaveRecordAdmin, self).get_queryset(request) if request.user.is_superuser: return qs return qs.filter(member=request.user) def has_view_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True def has_change_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True def has_delete_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True
class CertificateAdmin(admin.ModelAdmin): fields = ['title', ('member', 'issuer'), ('date', 'attachment'), 'topics'] select2 = select2_modelform(Certificate, attrs={'width': '250px'}) form = select2 def get_queryset(self, request): qs = super(CertificateAdmin, self).get_queryset(request) if request.user.is_superuser: return qs return qs.filter(member=request.user) def has_view_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True def has_change_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True def has_delete_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.member != request.user: return False return True
class EventAdmin(admin.ModelAdmin): fields = [('title', 'organizer', 'type'), ('international', 'projects', 'honours'), ('attendee', 'date'), ('topics', 'album')] list_display = ('title', 'date', 'organizer', 'type') select2 = select2_modelform(Event, attrs={'width': '250px'}) form = select2
class OrderAdmin(admin.ModelAdmin): list_display = ('orderID', 'user', 'timestamp', 'transactionStatus') list_filter = (('timestamp', DateTimeRangeFilter), 'products', TransactionStatusFilter, PaymentModeFilter, EmailTypeFilter) filter_horizontal = ('products', ) search_fields = [ 'orderID', 'user__username', 'transaction__transactionID', 'products__name' ] autocomplete_fields = ['transaction'] date_hierarchy = 'timestamp' inlines = (OPInline, ) select2 = select2_modelform(Order, attrs={'width': '250px'}) form = select2 def transactionStatus(self, obj): if obj.transaction: if obj.transaction.isPaid: if obj.transaction.isOnline: return "Paid Online" else: if obj.transaction.issuer: return "Collected by " + obj.transaction.issuer.username else: return "Paid Offline" elif obj.transaction.isPending: return "Pending" elif obj.transaction.isProcessed: return "Rejected" else: return "Not Processed" else: return "No Trans" transactionStatus.short_description = 'Transaction Status'
class UserDataAccessAdmin(admin.ModelAdmin): """ Django admin for UserDataAccess. **Authors**: Gagandeep Singh """ list_display = ('registered_user', 'content_type', 'organization', 'all_access', 'created_by', 'created_on') list_filter = ('all_access', 'organization', 'created_on') search_fields = ('registered_user__user__username', 'organization__name', 'content_type__model') raw_id_fields = ('registered_user', 'created_by') list_per_page = 20 form = select2_modelform(UserDataAccess, attrs={'width': '300px'}) def get_readonly_fields(self, request, obj=None): readonly_fields = [ field.name for field in self.model._meta.fields if not field.editable ] return readonly_fields def save_model(self, request, obj, form, change): if not change: obj.created_by = request.user obj.save()
class OrganizationRoleAdmin(admin.ModelAdmin): """ Django admin for OrganizationRole. **Authors**: Gagandeep Singh """ list_display = ('name', 'organization', 'created_by', 'created_on') list_filter = ('organization', 'created_on') search_fields = ('name', 'organization__name') raw_id_fields = ('created_by', ) filter_horizontal = ('permissions', ) list_per_page = 20 form = select2_modelform(OrganizationRole, attrs={'width': '300px'}) def get_readonly_fields(self, request, obj=None): readonly_fields = [ field.name for field in self.model._meta.fields if not field.editable ] return readonly_fields def save_model(self, request, obj, form, change): if not change: obj.created_by = request.user obj.save()
class PostAdmin(admin.ModelAdmin): fields = ('title', 'author', ('category', 'tags'), 'content') list_display = ('title', 'author', 'category') list_filter = ('author', 'category', 'tags') search_fields = ['title', 'author', 'category', 'tags'] select2 = select2_modelform(Post, attrs={'width': '250px'}) form = select2
class FormAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): fieldsets = [ ('Basic Details', { 'fields': [ 'name', 'submissionDeadline', ('allowMultiple', 'applicationLimit', 'onSubmitAfterMax'), 'formHash', ] }), ('Control Centre', { 'fields': ['admins', ('isActive', 'enableCheckIn', 'sendRSVP')] }), ('RSVP Manager', { 'fields': ['rsvpSubject', 'rsvpMessage'] }), ('Form Fields', { 'fields': ['formFields'] }), ] list_display = ('name', 'isActive', 'allowMultiple', 'enableCheckIn', 'applicationLimit', 'sendRSVP') select2 = select2_modelform(Form, attrs={'width': '250px'}) form = select2 resource_class = FormResource
class DailyLogAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): fields = [ ('date', 'thread'), 'members', 'late', 'didNotSend', 'invalidUpdates' ] list_display = ('date', 'thread', 'totalCount', 'lateCount', 'didNotSendCount', 'invalidUpdatesCount') select2 = select2_modelform(DailyLog, attrs={'width': '300px'}) form = select2 resource_class = DailyLogResource @staticmethod def totalCount(obj): return obj.members.count() @staticmethod def lateCount(obj): return obj.late.count() @staticmethod def didNotSendCount(obj): return obj.didNotSend.count() @staticmethod def invalidUpdatesCount(obj): return obj.invalidUpdates.count()
class NewsItemAdmin(PlaceholderAdminMixin, admin.ModelAdmin): form = select2_modelform(NewsItem, attrs={'width': '250px'}) list_display = ( 'headline', 'news_date', 'announcement', 'published', ) list_editable = ( 'announcement', 'published', ) prepopulated_fields = {"slug": ("headline", )} fieldsets = ((None, { 'fields': ( 'headline', 'slug', 'subtitle', 'announcement', 'announcement_title', 'published', 'news_date', 'categories', 'related_staff', 'key_image', 'key_image_tooltip', ), }), )
class PhysicalTicketAdmin(ImportExportModelAdmin, ExportActionMixin, admin.ModelAdmin): list_display = ('user', 'timestamp', 'number', 'issuer') search_fields = ('user__username', 'issuer__username', 'number') select2 = select2_modelform(PhysicalTicket, attrs={'width': '250px'}) resource_class = PhysicalTicketResource form = select2
class GroupAdmin(admin.ModelAdmin): fieldsets = ( (None, { 'fields': (('name', 'admins'), 'members') }), ('Attendance Management', { 'fields': ( 'attendanceEnabled', 'attendanceModule', ) }), ('Status Update Management', { 'fields': ( 'statusUpdateEnabled', ('thread', 'email'), ) }), ('Telegram Integration', { 'fields': (('telegramBot', 'telegramGroup'), ), }), ) search_fields = ['name', 'members'] list_display = ('name', 'members_count', 'attendanceEnabled', 'statusUpdateEnabled') select2 = select2_modelform(Group, attrs={ 'width': '800px', 'max-width': '100%' }) form = select2 def members_count(self, obj): return obj.members.all().count() members_count.verbose_name = 'No. of Mentees'
class OrganizationMemberAdmin(admin.ModelAdmin): """ Django admin class for OrganizationMember. **Authors**: Gagandeep Singh """ list_display = ('registered_user', 'organization', 'is_owner', 'deleted', 'created_on') list_filter = ('organization', 'is_owner', 'deleted', 'created_on') search_fields = ('registered_user__user__username', ) raw_id_fields = ('registered_user', ) form = select2_modelform(OrganizationMember, attrs={'width': '300px'}) def get_readonly_fields(self, request, obj=None): if obj: readonly_fields = [field.name for field in self.model._meta.fields] else: readonly_fields = ['deleted', 'created_on', 'modified_on'] return readonly_fields def has_delete_permission(self, request, obj=None): return False def save_model(self, request, obj, form, change): if obj.pk is None: obj.created_by = request.user obj.save()
class wexp_inline(admin.StackedInline): model = WorkExperience fields = (('organization', 'position'), ('start', 'end', 'location'), 'projects', 'description') extra = 0 select2 = select2_modelform(WorkExperience, attrs={'width': '250px'}) form = select2 def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == "projects": kwargs["queryset"] = Project.objects.filter(members=request.user) return super().formfield_for_manytomany(db_field, request, **kwargs) def has_add_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True def has_change_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True def has_delete_permission(self, request, obj=None): if request.user.is_superuser: return True if obj is not None and obj.user != request.user: return False return True
class ProfileAdmin(admin.ModelAdmin): list_display = ('user',) list_filter = () search_fields = ['user__username', 'phone'] select2 = select2_modelform(Profile, attrs={'width': '250px'}) form = select2
class EventTypeAdmin(admin.ModelAdmin): form = select2_modelform(EventType) list_display = ('name', 'organizers_group', 'get_sites', 'is_camp') def get_sites(self, obj): return ', '.join(force_text(x) for x in obj.sites.all()) get_sites.short_description = 'zobraziť na'
class SDBFenRunAdmin(admin.ModelAdmin): form = select2_modelform(models.SDBFenRun) list_display = [ "user", "nickname", "hardware_point", "point", "hardware_point_yun", "point_yun", "hardware_point_yin", "point_yin", "hardware_point_wx", "point_wx", "fanxian_rmb", "profit", "tax", "create_time", "update_time" ] fields = [ "user", "hardware_point", "point", "hardware_point_yun", "point_yun", "hardware_point_yin", "point_yin", "hardware_point_wx", "point_wx", "fanxian_rmb", "profit", "tax" ] search_fields = ["user__username"] def nickname(self, obj): user = obj.user if hasattr(user, "userprofile"): name = user.userprofile.name else: name = u"无" return name nickname.allow_tags = True nickname.short_description = u'昵称'
from django.contrib import admin from django.forms import Textarea from easy_select2 import select2_modelform # Register your models here. from .models import * EventForm = select2_modelform(Event, attrs={'width': '250px'}) ResultForm = select2_modelform(Result, attrs={'width': '150px'}) AliasForm = select2_modelform(Alias, attrs={'width':'250px'}) class ResultInline(admin.TabularInline): model = Result form = ResultForm formfield_overrides = { models.TextField: {'widget': Textarea(attrs={'rows':4, 'cols':40})}, } def get_extra(self, request, obj=None, **kwargs): return 15 class EventAdmin(admin.ModelAdmin): inlines = [ResultInline,] form = EventForm class ResultAdmin(admin.ModelAdmin): form = ResultForm class AliasAdmin(admin.ModelAdmin): form = AliasForm
from django.contrib import admin from .models import Staff from .models import Affiliation from .models import Customer from .models import User from django import forms from easy_select2 import select2_modelform CustomerForm = select2_modelform(Customer, attrs={'width':'200px'}) class CustomerAdminForm(forms.ModelForm): class Meta: model= Customer fields = ["account_ID"] def clean_name(self): return self.clean_name["account_ID"].upper() class CustomerAdmin(admin.ModelAdmin): form =CustomerForm fieldsets = [('Customer Information', {'fields':['account_ID','full_Name','acronym']}),('Contact Detail', {'fields':['address','country','state','us_state','telephone','website']}), ('Additional Information', {'fields':['VAT','customer_type','date_added','status','added_by']}) ] list_filter = ['date_added','status','customer_type',] search_fields = ['full_Name','acronym'] list_display = ('account_ID', 'full_Name','acronym','address','country','status','date_added') admin.site.register(Customer, CustomerAdmin) admin.site.register(Affiliation)
from django.contrib import admin from django.core.urlresolvers import reverse from django.http import HttpResponseRedirect from easy_select2 import select2_modelform from recetario.models import Ingrediente, Receta, Categoria, DetalleReceta DetalleRecetaForm = select2_modelform(DetalleReceta, attrs={'width': 'auto'}) class DetalleRecetaInline(admin.TabularInline): form = DetalleRecetaForm model = DetalleReceta extra = 1 class RecetaAdmin(admin.ModelAdmin): fields = ('nombre','categoria','image','image_tag','preparacion',) readonly_fields = ('image_tag',) inlines = (DetalleRecetaInline,) def response_add(self,request,obj,post_url_continue=None): return HttpResponseRedirect(reverse('recetario:listarecetas')) def response_change(self,request,obj,post_url_continue=None): return HttpResponseRedirect(reverse('recetario:listarecetas')) def response_delete(self,request,obj,post_url_continue=None): return HttpResponseRedirect(reverse('recetario:listarecetas')) class IngredienteAdmin(admin.ModelAdmin): def response_add(self,request,obj,post_url_continue=None): return HttpResponseRedirect(reverse('recetario:listaingredientes'))
from django.contrib import admin from django import forms from django.db import models from easy_select2 import select2_modelform from django.db.models import Q from tracker.models import Story, Project StoryForm = select2_modelform(Story) ProjectForm = select2_modelform(Project) class StoryAdmin(admin.ModelAdmin): formfield_overrides = {models.TextField: {'widget': forms.Textarea(attrs={'class': 'ckeditor'})}, } list_display = ('name', 'project', 'due_date', 'state', 'difficulty', 'assigned_to', '_status', 'description_link',) form = StoryForm list_filter = ('project', 'due_date', 'state', 'assigned_to',) def description_link(self, obj): return u'<a target="__blank" href="/api/tracker/stories/%d/description/">Description</a>' % obj.pk description_link.allow_tags = True description_link.short_description = "URL to description" def get_queryset(self, request): """Limit Pages to those that belong to the request's user.""" qs = super(StoryAdmin, self).queryset(request) if request.user.is_superuser or request.user.has_perm('tracker.all_story'): return qs return qs.filter(Q(assigned_to=request.user) | Q(project__contributers=request.user)).distinct()
from django.contrib import admin from easy_select2 import select2_modelform from models import * MainForm = select2_modelform(Main, attrs={'width': '480px'}) class MainAdmin(admin.ModelAdmin): form = MainForm admin.site.register(Main, MainAdmin) admin.site.register(Auteur) admin.site.register(CoteAuteur) admin.site.register(Collection) admin.site.register(Fonds) admin.site.register(Genre) admin.site.register(LangueOrigine) admin.site.register(Localisation) admin.site.register(MaisonEdition) admin.site.register(Medium) admin.site.register(MethodeReproduction) admin.site.register(NomOrg) admin.site.register(Projet) admin.site.register(TypeEvenement) admin.site.register(DirecteurCollection) admin.site.register(DirecteurPublication) admin.site.register(Editeur) admin.site.register(Support) admin.site.register(Traducteur) # admin.site.register(City) # admin.site.register(State) # admin.site.register(Country) admin.site.register(MotCle)
@admin.register(Person) class PersonAdmin(admin.ModelAdmin): ordering = ('name',) inlines = (PersonMembershipInline,) search_fields = ('name',) @admin.register(Organization) class OrganizationAdmin(admin.ModelAdmin): ordering = ('name',) inlines = (OrganizationMembershipInline,) search_fields = ('name',) EventForm = select2_modelform(Event) @admin.register(Event) class EventAdmin(admin.ModelAdmin): form = EventForm ordering = ('-start_date',) class ContentInline(admin.TabularInline): model = Content ordering = ('ordering',) fields = ('type', 'hypertext') extra = 0
# let's detour via the URL r = re.match('.*/modulhandbuch/([^/]*)/.*', request.path) urlname = r.group(1) + 'List' return HttpResponseRedirect(reverse(urlname)) else: return super(OwnedAdmin, self).response_delete(request, obj_display, obj_id) def response_add(self, request, obj, post_url_continue=None): if '_continue' not in request.POST: return HttpResponseRedirect(self.my_response_url(request, obj)) else: return super(OwnedAdmin, self).response_add(request, obj, post_url_continue) ModulForm = select2_modelform(Modul, attrs={'width': '250px'}) ######################################################### # inlines that understand whether they should be editable class OwnedInline(admin.TabularInline): pass ### experimental code, try to fix/cricumvent odd behavior of select2_modelform in ModulLVInline from django import forms
def __init__(self, model, admin_site): self.form = select2_modelform(model, attrs={'width': '21em'}) super(VoterBaseAdmin, self).__init__(model, admin_site)
# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf import settings from django.utils.translation import ugettext as _ from cms.plugin_base import CMSPluginBase from cms.plugin_pool import plugin_pool from easy_select2 import select2_modelform from .models import GistPluginModel GistForm = select2_modelform(GistPluginModel, attrs={'width': '250px'}) class GistPlugin(CMSPluginBase): form = GistForm model = GistPluginModel name = _("Gist") render_template = "djangocms_gist/_gist_plugin.html" text_enabled = True def render(self, context, instance, placeholder): context.update({ 'instance': instance, 'placeholder': placeholder, }) return context