mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 14:04:07 +01:00
Add recurrence tasks use rrule field
This commit is contained in:
parent
792e1f5276
commit
4100b10167
39
backend/tasks/migrations/0011_recurrencetask.py
Normal file
39
backend/tasks/migrations/0011_recurrencetask.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Generated by Django 4.2.6 on 2023-11-06 16:14
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('tasks', '0010_todo_alter_subtask_parent_task_delete_task'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='RecurrenceTask',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', models.TextField()),
|
||||||
|
('notes', models.TextField(default='')),
|
||||||
|
('importance', models.PositiveSmallIntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], default=1)),
|
||||||
|
('difficulty', models.PositiveSmallIntegerField(choices=[(1, 'Easy'), (2, 'Normal'), (3, 'Hard'), (4, 'Very Hard'), (5, 'Devil')], default=1)),
|
||||||
|
('challenge', models.BooleanField(default=False)),
|
||||||
|
('fromSystem', models.BooleanField(default=False)),
|
||||||
|
('creation_date', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_update', models.DateTimeField(auto_now=True)),
|
||||||
|
('google_calendar_id', models.CharField(blank=True, max_length=255, null=True)),
|
||||||
|
('start_event', models.DateTimeField(null=True)),
|
||||||
|
('end_event', models.DateTimeField(null=True)),
|
||||||
|
('recurrence_rule', models.TextField()),
|
||||||
|
('tags', models.ManyToManyField(blank=True, to='tasks.tag')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -1,9 +1,5 @@
|
|||||||
from datetime import datetime
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core import validators
|
|
||||||
from django.utils import timezone
|
|
||||||
|
|
||||||
class Tag(models.Model):
|
class Tag(models.Model):
|
||||||
"""
|
"""
|
||||||
@ -14,7 +10,7 @@ class Tag(models.Model):
|
|||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
|
|
||||||
|
|
||||||
class Todo(models.Model):
|
class Task(models.Model):
|
||||||
"""
|
"""
|
||||||
Represents a Abstract of task, such as Habit, Daily, Todo, or Reward.
|
Represents a Abstract of task, such as Habit, Daily, Todo, or Reward.
|
||||||
|
|
||||||
@ -58,7 +54,7 @@ class Todo(models.Model):
|
|||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
|
|
||||||
class Todo(Todo):
|
class Todo(Task):
|
||||||
|
|
||||||
class EisenhowerMatrix(models.IntegerChoices):
|
class EisenhowerMatrix(models.IntegerChoices):
|
||||||
IMPORTANT_URGENT = 1, 'Important & Urgent'
|
IMPORTANT_URGENT = 1, 'Important & Urgent'
|
||||||
@ -71,6 +67,11 @@ class Todo(Todo):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
return self.title
|
||||||
|
|
||||||
|
class RecurrenceTask(Task):
|
||||||
|
recurrence_rule = models.TextField()
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
return f"{self.title} ({self.recurrence_rule})"
|
||||||
|
|
||||||
class Subtask(models.Model):
|
class Subtask(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user