Time tracking you can host anywhere, built on Django. Full export support in multiple formats and easily extensible.
djangodockerhandcodedpythonself-hostedtime-trackingtimetracker
1{% load static %}
2
3
4<!DOCTYPE html>
5<html>
6
7<head>
8 <meta charset="utf-8" />
9 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
10 <title>Application — {{ request.site.name }}</title>
11 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
12
13 <link rel="shortcut icon" type="image/x-icon" href="{% static 'imgs/favicon.ico' %}" />
14
15 <link rel="stylesheet" href="{% static 'bundle.css' %}" />
16</head>
17
18<body>
19 <div id="app"></div>
20
21 <script>
22 (function(document, window) {
23 window.timestrapConfig = window.timestrapConfig || {};
24 timestrapConfig.CORE_URLS = {
25 LOGIN: "{% url 'login' %}",
26 LOGOUT: "{% url 'logout' %}",
27 API: "{% url 'api-root' %}",
28 ADMIN: "{% url 'admin:index' %}",
29 REPORTS: "{% url 'reports' %}",
30 REPORTS_EXPORT: "{% url 'reports-export' %}",
31 CLIENTS: "{% url 'clients' %}",
32 TIMESHEET: "{% url 'timesheet' %}",
33 TASKS: "{% url 'tasks' %}",
34 PROJECTS: "{% url 'projects' %}",
35 };
36 timestrapConfig.API_URLS = {
37 USERS: "{% url 'user-list' %}",
38 PERMISSIONS: "{% url 'permission-list' %}",
39 CLIENTS: "{% url 'client-list' %}",
40 PROJECTS: "{% url 'project-list' %}",
41 ENTRIES: "{% url 'entry-list' %}",
42 TASKS: "{% url 'task-list' %}",
43 };
44 timestrapConfig.USER = {
45 ID: {{ user.id }},
46 URL: "{% url 'user-detail' user.id %}",
47 NAME: "{{ user.username }}",
48 IS_STAFF: {{ user.is_staff|yesno:"true,false" }},
49 };
50 timestrapConfig.SITE = {
51 ID: {{ request.site.id }},
52 DOMAIN: "{{ request.site.domain }}",
53 NAME: "{{ request.site.name }}",
54 LOCALE: "{{ request.site.conf.i18n_language_code }}",
55 TIMEZONE: "{{ request.site.conf.i18n_timezone }}",
56 };
57 })(document, window);
58 </script>
59
60 <script src="{% static 'bundle.js' %}"></script>
61</body>
62
63</html>