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

7.3 KB · 218 lines · Python Raw History
  1import conf.managers
  2from django.conf import settings
  3from django.db import migrations, models
  4import django.db.models.deletion
  5import django.db.models.manager
  6
  7
  8class Migration(migrations.Migration):
  9
 10    initial = True
 11
 12    dependencies = [
 13        ("sites", "0002_alter_domain_unique"),
 14        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 15    ]
 16
 17    operations = [
 18        migrations.CreateModel(
 19            name="Client",
 20            fields=[
 21                (
 22                    "id",
 23                    models.AutoField(
 24                        auto_created=True,
 25                        primary_key=True,
 26                        serialize=False,
 27                        verbose_name="ID",
 28                    ),
 29                ),
 30                ("name", models.CharField(max_length=255)),
 31                ("archive", models.BooleanField(default=False)),
 32                ("payment_id", models.CharField(blank=True, max_length=255, null=True)),
 33                (
 34                    "invoice_email",
 35                    models.EmailField(blank=True, max_length=255, null=True),
 36                ),
 37                ("sites", models.ManyToManyField(to="sites.Site")),
 38            ],
 39            options={
 40                "default_permissions": ("view", "add", "change", "delete"),
 41                "ordering": ["-id"],
 42            },
 43            managers=[
 44                ("objects", django.db.models.manager.Manager()),
 45                ("on_site", conf.managers.CurrentSiteManager()),
 46            ],
 47        ),
 48        migrations.CreateModel(
 49            name="Entry",
 50            fields=[
 51                (
 52                    "id",
 53                    models.AutoField(
 54                        auto_created=True,
 55                        primary_key=True,
 56                        serialize=False,
 57                        verbose_name="ID",
 58                    ),
 59                ),
 60                ("date", models.DateField(blank=True)),
 61                ("duration", models.DurationField(blank=True)),
 62                ("note", models.TextField(blank=True, null=True)),
 63            ],
 64            options={
 65                "verbose_name_plural": "Entries",
 66                "ordering": ["-date", "-id"],
 67                "default_permissions": ("view", "add", "change", "delete"),
 68            },
 69            managers=[
 70                ("objects", django.db.models.manager.Manager()),
 71                ("on_site", conf.managers.CurrentSiteManager()),
 72            ],
 73        ),
 74        migrations.CreateModel(
 75            name="Invoice",
 76            fields=[
 77                (
 78                    "id",
 79                    models.AutoField(
 80                        auto_created=True,
 81                        primary_key=True,
 82                        serialize=False,
 83                        verbose_name="ID",
 84                    ),
 85                ),
 86                ("created", models.DateTimeField(auto_now_add=True)),
 87                ("paid", models.DateTimeField(blank=True, null=True)),
 88                (
 89                    "transaction_id",
 90                    models.CharField(blank=True, max_length=255, null=True),
 91                ),
 92                (
 93                    "client",
 94                    models.ForeignKey(
 95                        on_delete=django.db.models.deletion.CASCADE, to="core.Client"
 96                    ),
 97                ),
 98                (
 99                    "entries",
100                    models.ManyToManyField(related_name="invoices", to="core.Entry"),
101                ),
102                (
103                    "site",
104                    models.ForeignKey(
105                        default=1,
106                        on_delete=django.db.models.deletion.CASCADE,
107                        to="sites.Site",
108                    ),
109                ),
110            ],
111            options={"default_permissions": ("view", "add", "change", "delete")},
112            managers=[
113                ("objects", django.db.models.manager.Manager()),
114                ("on_site", conf.managers.CurrentSiteManager()),
115            ],
116        ),
117        migrations.CreateModel(
118            name="Project",
119            fields=[
120                (
121                    "id",
122                    models.AutoField(
123                        auto_created=True,
124                        primary_key=True,
125                        serialize=False,
126                        verbose_name="ID",
127                    ),
128                ),
129                ("name", models.CharField(max_length=255)),
130                ("archive", models.BooleanField(default=False)),
131                (
132                    "estimate",
133                    models.DecimalField(
134                        blank=True, decimal_places=2, max_digits=10, null=True
135                    ),
136                ),
137                (
138                    "client",
139                    models.ForeignKey(
140                        on_delete=django.db.models.deletion.CASCADE,
141                        related_name="projects",
142                        to="core.Client",
143                    ),
144                ),
145            ],
146            options={
147                "default_permissions": ("view", "add", "change", "delete"),
148                "ordering": ["client", "-id"],
149            },
150        ),
151        migrations.CreateModel(
152            name="Task",
153            fields=[
154                (
155                    "id",
156                    models.AutoField(
157                        auto_created=True,
158                        primary_key=True,
159                        serialize=False,
160                        verbose_name="ID",
161                    ),
162                ),
163                ("name", models.CharField(max_length=255)),
164                (
165                    "hourly_rate",
166                    models.DecimalField(
167                        blank=True, decimal_places=2, max_digits=10, null=True
168                    ),
169                ),
170                ("sites", models.ManyToManyField(to="sites.Site")),
171            ],
172            options={
173                "default_permissions": ("view", "add", "change", "delete"),
174                "ordering": ["-id"],
175            },
176            managers=[
177                ("objects", django.db.models.manager.Manager()),
178                ("on_site", conf.managers.CurrentSiteManager()),
179            ],
180        ),
181        migrations.AddField(
182            model_name="entry",
183            name="project",
184            field=models.ForeignKey(
185                on_delete=django.db.models.deletion.CASCADE,
186                related_name="entries",
187                to="core.Project",
188            ),
189        ),
190        migrations.AddField(
191            model_name="entry",
192            name="site",
193            field=models.ForeignKey(
194                default=1, on_delete=django.db.models.deletion.CASCADE, to="sites.Site"
195            ),
196        ),
197        migrations.AddField(
198            model_name="entry",
199            name="task",
200            field=models.ForeignKey(
201                blank=True,
202                null=True,
203                on_delete=django.db.models.deletion.CASCADE,
204                related_name="entries",
205                to="core.Task",
206            ),
207        ),
208        migrations.AddField(
209            model_name="entry",
210            name="user",
211            field=models.ForeignKey(
212                on_delete=django.db.models.deletion.CASCADE,
213                related_name="entries",
214                to=settings.AUTH_USER_MODEL,
215            ),
216        ),
217    ]