repos
/ timestrap-django master

timestrap-django

mirror archived upstream

Time tracking you can host anywhere, built on Django. Full export support in multiple formats and easily extensible.

djangodockerhandcodedpythonself-hostedtime-trackingtimetracker

1.4 KB · 51 lines · Python Raw History
 1from django.contrib import admin
 2
 3from import_export import resources
 4
 5from .models import Client, Entry, Project, Task
 6
 7
 8@admin.register(Client)
 9class ClientAdmin(admin.ModelAdmin):
10    list_display = ("name", "payment_id", "archive")
11    list_editable = ("archive",)
12    list_filter = ("archive", "sites")
13    search_fields = ("name",)
14
15
16@admin.register(Entry)
17class EntryAdmin(admin.ModelAdmin):
18    list_display = ("project", "user", "date", "duration")
19    list_editable = ("date", "duration")
20    list_filter = ("project", "project__client", "user", "date", "site")
21    search_fields = ("project", "project__client", "user", "note")
22    fieldsets = (
23        (None, {"fields": ("project", "user")}),
24        (
25            "Date Completed & Duration of Project",
26            {"fields": ("date", "duration", "datetime_start", "datetime_end")},
27        ),
28        ("Extra", {"fields": ("note", "site")}),
29    )
30
31
32class EntryResource(resources.ModelResource):
33    class Meta:
34        model = Entry
35        fields = ("project__name", "user__username", "date", "duration", "note")
36
37
38@admin.register(Project)
39class ProjectAdmin(admin.ModelAdmin):
40    list_display = ("name", "client", "archive")
41    list_editable = ("archive",)
42    list_filter = ("client", "archive")
43    search_fields = ("name", "client")
44
45
46@admin.register(Task)
47class TaskAdmin(admin.ModelAdmin):
48    list_display = ("name", "hourly_rate")
49    list_filter = ("sites",)
50    search_fields = ("name",)