forked from beba/foerderbarometer
				
			
		
			
				
	
	
		
			174 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
import csv
 | 
						|
 | 
						|
from django.contrib import admin
 | 
						|
from django.http import HttpResponse
 | 
						|
 | 
						|
from .models import (
 | 
						|
    Account,
 | 
						|
    Project,
 | 
						|
    HonoraryCertificate,
 | 
						|
    Library,
 | 
						|
    ELiterature,
 | 
						|
    Software,
 | 
						|
    IFG,
 | 
						|
    Travel,
 | 
						|
    Email,
 | 
						|
    BusinessCard,
 | 
						|
    List,
 | 
						|
    Literature,
 | 
						|
)
 | 
						|
 | 
						|
 | 
						|
def export_as_csv(self, request, queryset):
 | 
						|
 | 
						|
    meta = self.model._meta
 | 
						|
    field_names = [field.name for field in meta.fields]
 | 
						|
 | 
						|
    response = HttpResponse(content_type='text/csv')
 | 
						|
    response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
 | 
						|
    writer = csv.writer(response)
 | 
						|
 | 
						|
    writer.writerow(field_names)
 | 
						|
    for obj in queryset:
 | 
						|
        row = writer.writerow([getattr(obj, field) for field in field_names])
 | 
						|
 | 
						|
    return response
 | 
						|
 | 
						|
export_as_csv.short_description = "Ausgewähltes zu CSV exportieren"
 | 
						|
 | 
						|
admin.site.add_action(export_as_csv)
 | 
						|
 | 
						|
@admin.register(Project)
 | 
						|
class ProjectAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('name', 'pid','finance_id', 'realname', 'start', 'end', 'participants_estimated', 'participants_real', 'cost', 'status', 'end_quartal')
 | 
						|
    list_display = ('name', 'pid','finance_id', 'realname', 'start', 'end', 'participants_estimated', 'participants_real', 'cost', 'status', 'end_quartal')
 | 
						|
    fields = ('realname', 'email', 'granted', 'granted_date', 'mail_state', 'end_mail_send', 'survey_mail_send', 'survey_mail_date', 'name', 'description', 'pid', 'finance_id', 'start', 'end', 'otrs', 'plan', 'page', 'urls', 'group', 'location', 'participants_estimated', 'participants_real', 'insurance', 'insurance_technic', 'support', 'cost', 'account', 'granted_from', 'notes', 'intern_notes', 'status', 'project_of_year', 'end_quartal')
 | 
						|
    #    action = ['export_as_csv']
 | 
						|
    date_hierarchy = 'end'
 | 
						|
    readonly_fields = ('end_quartal', 'project_of_year', 'pid', 'finance_id')
 | 
						|
 | 
						|
    class Media:
 | 
						|
        js = ('dropdown/js/otrs_link.js',)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
@admin.register(BusinessCard)
 | 
						|
class BusinessCardAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date', 'project')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date', 'project', 'terms_accepted')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    #    action = ['export_as_csv']
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
    class Media:
 | 
						|
        js = ('dropdown/js/base.js',)
 | 
						|
 | 
						|
@admin.register(Literature)
 | 
						|
class LiteratureAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date', 'terms_accepted')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
 | 
						|
 | 
						|
@admin.register(Account)
 | 
						|
class AccountAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
 | 
						|
 | 
						|
@admin.register(HonoraryCertificate)
 | 
						|
class HonoraryCertificateAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ['realname', 'granted', 'project__name', 'project__pid']
 | 
						|
    list_display = ('realname', 'granted','project')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    autocomplete_fields = ['project']
 | 
						|
    class Media:
 | 
						|
        js = ('dropdown/js/otrs_link.js',)
 | 
						|
 | 
						|
 | 
						|
@admin.register(Library, ELiterature, Software)
 | 
						|
class LibraryAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
    exclude = ['type']
 | 
						|
 | 
						|
    def get_queryset(self, request):
 | 
						|
        return super().get_queryset(request).filter(type=self.model.TYPE)
 | 
						|
 | 
						|
    def formfield_for_dbfield(self, db_field, request, **kwargs):
 | 
						|
        if db_field.name == 'library':
 | 
						|
            kwargs['label'] = self.model.LIBRARY_LABEL
 | 
						|
            kwargs['help_text'] = self.model.LIBRARY_HELP_TEXT
 | 
						|
 | 
						|
        elif db_field.name == 'duration':
 | 
						|
            kwargs['help_text'] = self.model.DURATION_HELP_TEXT
 | 
						|
 | 
						|
        return super().formfield_for_dbfield(db_field, request, **kwargs)
 | 
						|
 | 
						|
 | 
						|
@admin.register(IFG)
 | 
						|
class IFGAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
 | 
						|
@admin.register(Travel)
 | 
						|
class TravelAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ['realname', 'service_id', 'granted_date', 'project__name', 'project__pid']
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date', 'project_end', 'project', 'project_end_quartal')
 | 
						|
    list_display_links = ('realname', 'project')
 | 
						|
    date_hierarchy = 'project_end'
 | 
						|
    autocomplete_fields = ['project']
 | 
						|
    readonly_fields = ['service_id', 'project_end', 'project_end_quartal']
 | 
						|
 | 
						|
    class Media:
 | 
						|
        js = ('dropdown/js/otrs_link.js',)
 | 
						|
 | 
						|
 | 
						|
@admin.register(Email)
 | 
						|
class EmailAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date', 'terms_accepted')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    radio_fields = {'adult': admin.VERTICAL}
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
    class Media:
 | 
						|
        js = ('dropdown/js/base.js',)
 | 
						|
 | 
						|
 | 
						|
@admin.register(List)
 | 
						|
class ListAdmin(admin.ModelAdmin):
 | 
						|
    save_as = True
 | 
						|
    search_fields = ('realname', 'service_id', 'granted', 'granted_date')
 | 
						|
    list_display = ('realname', 'service_id', 'granted', 'granted_date', 'terms_accepted')
 | 
						|
    list_display_links = ('realname', 'service_id')
 | 
						|
    date_hierarchy = 'granted_date'
 | 
						|
    readonly_fields = ['service_id']
 | 
						|
 | 
						|
# commented out because of the individual registering to control displays in admin panel
 | 
						|
 | 
						|
#admin.site.register([
 | 
						|
#                     Account,
 | 
						|
#                     HonoraryCertificate,
 | 
						|
#                     Library,
 | 
						|
#                     IFG,
 | 
						|
#                     Travel,
 | 
						|
#                     Email,
 | 
						|
#                     List,
 | 
						|
#                     ])
 |