from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
from vms import models
[docs]@admin.register(models.Client)
class ClientAdmin(admin.ModelAdmin):
date_hierarchy = 'time_created'
fieldsets = (
(
None,
{
'fields': ('name', 'id'),
},
),
(
_('Contact Information'),
{
'fields': ('email', 'phone_number', 'notes'),
},
),
(
_('Detailed Information'),
{
'classes': ('collapse',),
'fields': ('slug', 'time_created', 'time_updated'),
},
),
)
list_display = ('name', 'id', 'email', 'time_created', 'time_updated')
readonly_fields = ('id', 'slug', 'time_created', 'time_updated')
search_fields = ('email', 'name')
[docs]@admin.register(models.ClientAdmin)
class ClientAdminAdmin(admin.ModelAdmin):
autocomplete_fields = ('client', 'user')
date_hierarchy = 'time_created'
fields = ('client', 'user', 'time_created')
list_display = ('user', 'client', 'time_created')
readonly_fields = ('time_created',)
search_fields = ('client__name', 'user__name')
[docs]@admin.register(models.ClientAdminInvite)
class ClientAdminInviteAdmin(admin.ModelAdmin):
autocomplete_fields = ('client',)
date_hierarchy = 'time_created'
fields = ('client', 'email', 'token', 'time_created')
list_display = ('client', 'email', 'time_created')
readonly_fields = ('time_created', 'token')
search_fields = ('client__name', 'email', 'token')
[docs]@admin.register(models.ClientJob)
class ClientJobAdmin(admin.ModelAdmin):
autocomplete_fields = ('client',)
fields = ('client', 'name', 'pay_rate', 'description', 'slug')
list_display = ('name', 'client', 'pay_rate')
readonly_fields = ('slug',)
search_fields = ('client__name', 'name', 'slug')
[docs]@admin.register(models.Employee)
class EmployeeAdmin(admin.ModelAdmin):
autocomplete_fields = ('client', 'user')
date_hierarchy = 'time_created'
fieldsets = (
(
None,
{
'fields': ('user', 'client', 'staffing_agency', 'employee_id'),
},
),
(
_('Employee Details'),
{
'fields': ('supervisor', 'is_active'),
},
),
(
_('Approval Information'),
{
'fields': ('approved_by', 'time_approved'),
},
),
(
_('Detailed Information'),
{
'classes': ('collapse',),
'fields': ('time_created', 'time_updated'),
},
),
)
list_display = (
'employee_id',
'user',
'client',
'staffing_agency',
'supervisor_name',
'is_active',
'time_created',
)
list_filter = ('is_active',)
readonly_fields = ('time_created', 'time_updated')
search_fields = (
'client__name',
'staffing_agency__name',
'supervisor__user__name',
'user__name',
)
[docs] def supervisor_name(self, obj):
"""
Get the name of the employee's supervisor.
Args:
obj:
The employee to get the supervisor of.
Returns:
The name of the employee's supervisor if they have an
assigned supervisor. Otherwise, a placeholder empty value is
returned.
"""
if obj.supervisor:
return obj.supervisor.user.name
else:
return "-"
supervisor_name.admin_order_field = 'supervisor__user__name'
[docs]@admin.register(models.StaffingAgency)
class StaffingAgencyAdmin(admin.ModelAdmin):
date_hierarchy = 'time_created'
fieldsets = (
(
None,
{
'fields': ('name',),
},
),
(
_('Contact Information'),
{
'fields': ('email', 'phone_number', 'notes'),
},
),
(
_('Detailed Information'),
{
'classes': ('collapse',),
'fields': ('slug', 'time_created', 'time_updated'),
},
),
)
list_display = ('name', 'email', 'time_created', 'time_updated')
readonly_fields = ('slug', 'time_created', 'time_updated')
search_fields = ('email', 'name')
[docs]@admin.register(models.StaffingAgencyAdmin)
class StaffingAgencyAdminAdmin(admin.ModelAdmin):
autocomplete_fields = ('agency', 'user')
date_hierarchy = 'time_created'
fields = ('agency', 'user', 'time_created')
list_display = ('user', 'agency', 'time_created')
readonly_fields = ('time_created',)
search_fields = ('agency__name', 'user__name')
[docs]@admin.register(models.StaffingAgencyEmployee)
class StaffingAgencyEmployeeAdmin(admin.ModelAdmin):
autocomplete_fields = ('agency', 'approved_by', 'user')
date_hierarchy = 'time_created'
fieldsets = (
(
None,
{
'fields': ('user', 'agency', 'time_created'),
},
),
(
_('Approval'),
{
'fields': ('is_approved', 'approved_by', 'time_approved'),
},
),
)
list_display = (
'user',
'agency',
'time_created',
'is_approved',
'time_approved',
)
list_filter = ('is_approved',)
readonly_fields = ('time_created',)
search_fields = ('agency__name', 'approved_by__user__name', 'user__name')
[docs]@admin.register(models.TimeRecord)
class TimeRecordAdmin(admin.ModelAdmin):
autocomplete_fields = ('job', 'employee')
date_hierarchy = 'time_start'
fields = ('employee', 'job', 'pay_rate', 'time_start', 'time_end')
list_display = (
'employee',
'client',
'job',
'pay_rate',
'time_start',
'time_end',
)
search_fields = ('employee__user__name', 'job__client__name', 'job__name')
def client(self, obj):
return obj.employee.client
client.admin_order_field = 'employee__client__name'
[docs]@admin.register(models.TimeRecordApproval)
class TimeRecordApprovalAdmin(admin.ModelAdmin):
autocomplete_fields = ('user',)
date_hierarchy = 'time_approved'
fields = ('time_record', 'user', 'time_approved')
list_display = ('time_record', 'user', 'time_approved')
readonly_fields = ('time_approved',)
search_fields = ('user__name',)