Repository URL to install this package:
|
Version:
0.1.4 ▾
|
from django.contrib import admin
from django.contrib.auth import get_user_model
from fsm_admin.mixins import FSMTransitionMixin
from .models import activities, contacts, dynamic_fields, entries, entry_fields, in_charge_entries
admin.site.register(activities.ActivityType)
admin.site.register(dynamic_fields.DynamicCharField)
admin.site.register(dynamic_fields.DynamicRangeField)
admin.site.register(dynamic_fields.DynamicChoiceField)
admin.site.register(entry_fields.CompanyType)
admin.site.register(entry_fields.EntryStatus)
admin.site.register(entry_fields.PersonPrefix)
admin.site.register(entry_fields.Tag)
class AddressContactInline(admin.StackedInline):
model = contacts.AddressContact
extra = 0
class BankingContactInline(admin.StackedInline):
model = contacts.BankingContact
extra = 0
class EmailContactInline(admin.StackedInline):
model = contacts.EmailContact
extra = 0
class TelephoneContactInline(admin.StackedInline):
model = contacts.TelephoneContact
extra = 0
class WebsiteContactInline(admin.StackedInline):
model = contacts.WebsiteContact
extra = 0
class ActivityInline(admin.StackedInline):
model = activities.Activity
extra = 0
fieldsets = (
('Main information', {'fields': ('title', 'description',)}),
)
# class UserModelInline(admin.StackedInline):
# model = get_user_model()
# extra = 0
# fieldsets = (
# ('Main information', {'fields': ('first_name', 'last_name', 'email', 'username')}),
# )
class EmployeesInline(admin.StackedInline):
model = entries.Person
fk_name = 'employer'
extra = 0
fieldsets = (
('Main information', {'fields': ('first_name', 'last_name',)}),
)
@admin.register(entries.Company)
class CompanyAdmin(admin.ModelAdmin):
search_fields = ('title',)
list_display = ('title',)
fieldsets = (
('Main information', {'fields': ('title', 'in_charge')}),
('Additional Fields', {'fields': ('additional_fields',)}),
('System-Files', {'fields': ('profile_image',)}),
)
raw_id_fields = (
'in_charge',
)
inlines = [
EmployeesInline,
AddressContactInline,
BankingContactInline,
EmailContactInline,
TelephoneContactInline,
WebsiteContactInline,
]
@admin.register(entries.Person)
class PersonAdmin(admin.ModelAdmin):
search_fields = ('first_name', 'last_name')
list_display = ('first_name', 'last_name', 'employer',)
fieldsets = (
('Main information', {'fields': ('first_name', 'last_name',)}),
('Work Fields', {'fields': ('employer', 'head')}),
('Additional Fields', {'fields': ('additional_fields',)}),
('Misc.', {'fields': ('birthday', 'in_charge')}),
('System-Files', {'fields': ('profile_image', 'signature',)}),
)
raw_id_fields = (
'employer',
'in_charge',
)
inlines = [
AddressContactInline,
BankingContactInline,
EmailContactInline,
TelephoneContactInline,
WebsiteContactInline,
]
@admin.register(entries.Entry)
class EntryAdmin(admin.ModelAdmin):
search_fields = ('search_name',)
list_display = ('search_name', 'entry_type')
fieldsets = (
('Main information', {'fields': ('search_name',)}),
)
@admin.register(activities.Activity)
class ActivityAdmin(FSMTransitionMixin, admin.ModelAdmin):
search_fields = ('title',)
list_display = ('status','title', 'start', 'end', 'reminder')
fieldsets = (
('Main information', {'fields': ('title', 'description', 'result')}),
('Meta', {'fields': ('status', 'type')}),
('Temporal Information', {'fields': ('due', 'start', 'end', 'reminder', 'duration', 'all_day')}),
('Unplanned Temporal Information', {'fields': ('unplanned_year', 'unplanned_quarter', 'unplanned_month', 'unplanned_week', 'unplanned_day', 'unplanned_week_day')}),
('Geographical Information', {'fields': ('location', 'location_longitude', 'location_latitude')}),
('Linked Entries', {'fields': ('assigned_to', 'participants',)}),
('Linked Activities', {'fields': ('preceded_by',)}),
('Reoccurance', {'fields': ('reoccurance_rule',)}),
)
raw_id_fields = (
'assigned_to',
'participants',
'preceded_by',
)
inlines = [
ActivityInline,
]
fsm_field = ['status', ]
@admin.register(activities.ActivityReoccuranceRule)
class ActivityReoccuranceRuleAdmin(admin.ModelAdmin):
fieldsets = (
('Information', {'fields': ('start','end','reoccurance')}),
('Activity Information', {'fields': ('activity_title','activity_description', 'activity_type', 'activity_assigned_to','activity_participants','activity_start','activity_end','activity_reminder')}),
)
raw_id_fields = (
'activity_assigned_to',
'activity_participants',
)