Add recurrence tasks use rrule field

This commit is contained in:
sosokker 2023-11-06 23:14:53 +07:00
parent 792e1f5276
commit 4100b10167
2 changed files with 46 additions and 6 deletions

View 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,
},
),
]

View File

@ -1,9 +1,5 @@
from datetime import datetime
from django.db import models
from django.conf import settings
from django.core import validators
from django.utils import timezone
class Tag(models.Model):
"""
@ -14,7 +10,7 @@ class Tag(models.Model):
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.
@ -58,7 +54,7 @@ class Todo(models.Model):
abstract = True
class Todo(Todo):
class Todo(Task):
class EisenhowerMatrix(models.IntegerChoices):
IMPORTANT_URGENT = 1, 'Important & Urgent'
@ -71,6 +67,11 @@ class Todo(Todo):
def __str__(self):
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):
"""