Skip to content

admin

main.admin ¤

Admin module for the main app.

Classes¤

CapacityAdmin ¤

Bases: ModelAdmin

Admin class for the Capacity model.

FundingAdmin ¤

Bases: ModelAdmin

Admin class for the Funding model.

MonthlyChargeAdmin ¤

Bases: ModelAdmin

Admin class for the MonthlyCharge model.

Functions¤
confirm_charge(request, queryset) ¤

Update monthly charge status to 'Confirmed'.

Source code in main/admin.py
127
128
129
130
131
132
@admin.action(description="Confirm monthly charges")
def confirm_charge(
    self, request: HttpRequest, queryset: QuerySet[MonthlyCharge]
) -> None:
    """Update monthly charge status to 'Confirmed'."""
    queryset.update(status="Confirmed")

ProjectAdmin ¤

Bases: ModelAdmin

Admin class for the Project model.

TimeEntryAdmin ¤

Bases: ModelAdmin

Admin class for the TimeEntry model.

Functions¤
get_urls() ¤

Get urls for this admin view.

Source code in main/admin.py
86
87
88
89
90
91
92
93
94
95
96
def get_urls(self) -> list[URLPattern]:
    """Get urls for this admin view."""
    urls = super().get_urls()
    custom_urls = [
        path(
            "sync_clockify/",
            self.sync_time_entries_view,
            name="sync-clockify",
        )
    ]
    return custom_urls + urls
sync_time_entries_view(request) ¤

Forces a synchronisation of Clockify time entries.

Source code in main/admin.py
 98
 99
100
101
102
103
104
105
106
107
108
109
def sync_time_entries_view(self, request: HttpRequest) -> HttpResponse:
    """Forces a synchronisation of Clockify time entries."""
    issues = sync_clockify_time_entries()
    if not issues:
        self.message_user(request, "Syncronysation completted successfully!")
    else:
        self.message_user(
            request,
            "Something went wrong with the synchronisation. Check the logs.",
            level=messages.ERROR,
        )
    return HttpResponseRedirect(reverse("admin:main_timeentry_changelist"))

Functions¤