Skip to content

Commit ce94544

Browse files
committed
Add 3 new columns status, due_date, owner
1 parent ff59a44 commit ce94544

9 files changed

Lines changed: 61 additions & 10 deletions
0 Bytes
Binary file not shown.
551 Bytes
Binary file not shown.
154 Bytes
Binary file not shown.
799 Bytes
Binary file not shown.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Generated by Django 5.2.7 on 2025-10-28 12:05
2+
3+
import django.db.models.deletion
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('tasks', '0002_alter_tasks_updated_at'),
12+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13+
]
14+
15+
operations = [
16+
migrations.AddField(
17+
model_name='tasks',
18+
name='due_date',
19+
field=models.DateField(blank=True, null=True),
20+
),
21+
migrations.AddField(
22+
model_name='tasks',
23+
name='owner',
24+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tasks', to=settings.AUTH_USER_MODEL),
25+
),
26+
migrations.AddField(
27+
model_name='tasks',
28+
name='status',
29+
field=models.CharField(choices=[('pending', 'Pending'), ('completed', 'Completed'), ('overdue', 'Overdue')], default='pending', max_length=10),
30+
),
31+
]
Binary file not shown.

tasks/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
11
from django.db import models
2+
from django.contrib.auth import get_user_model
3+
4+
User = get_user_model()
25

36
# Create your models here.
47
class Tasks(models.Model):
8+
STATUS_CHOICES = [
9+
('pending', "Pending"),
10+
('completed', 'Completed'),
11+
('overdue', 'Overdue')
12+
]
513
task = models.CharField(max_length=100, blank=False)
614
description = models.TextField(max_length=500, blank=True)
15+
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='pending')
16+
due_date = models.DateField(blank=True, null=True)
717
created_at = models.DateTimeField(auto_now_add=True)
818
updated_at = models.DateTimeField(blank=True, null=True)
919
category = models.CharField(max_length=100,blank=True)
20+
owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='tasks')
21+

tasks/urls.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
from .views import TaskListView, TaskCreateView
1+
from .views import TaskListView, TaskCreateView, TaskUpdateDeleteView
22
from django.urls import path
33
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
44

55
urlpatterns = [
6-
path('task/', TaskCreateView.as_view(), name="post_task"),
7-
path('tasks/', TaskListView.as_view(), name="get_task"),
8-
path('token/', TokenObtainPairView.as_view(), name="token_access"),
9-
path('token/refresh/', TokenRefreshView.as_view(), name="token_refresh")
10-
]
6+
path('task/', TaskListView.as_view(), name='task_list'),
7+
path('task/create/', TaskCreateView.as_view(), name='task_create'),
8+
path('task/<int:pk>/', TaskUpdateDeleteView.as_view(), name='task_detail'),
9+
path('token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
10+
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
11+
]

tasks/views.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,23 @@
55

66

77
class TaskListView(generics.ListAPIView):
8-
queryset = Tasks.objects.all()
98
serializer_class = Task_Serializer
109
permission_classes = [IsAuthenticated]
1110

11+
def get_queryset(self):
12+
return Tasks.objects.filter(owner=self.request.user)
13+
1214
class TaskCreateView(generics.CreateAPIView):
13-
queryset = Tasks.objects.all()
1415
serializer_class = Task_Serializer
1516
permission_classes = [IsAuthenticated]
16-
1717

18+
def get_queryset(self):
19+
return Tasks.objects.filter(owner=self.request.user)
20+
21+
class TaskUpdateDeleteView(generics.RetrieveDestroyAPIView):
22+
serializer_class = Task_Serializer
23+
permission_classes = [IsAuthenticated]
1824

25+
def get_queryset(self):
26+
return Tasks.objects.filter(owner=self.request.user)
1927

20-
# Create your views here.

0 commit comments

Comments
 (0)