diff --git a/.gitignore b/.gitignore index a97ed864..60d243f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ venv __pycache__ -db.sqlite3 \ No newline at end of file +db.sqlite3 +.vs/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..51cff21f --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ + +Se crean nuevas tareas en una base de datos a parte y se eliminan una vez termine de ejecutarse el test + +# Creacion de pruebas unitarias para el uso de fechas en la creacion de una nueva tarea: +## Pruebas Unitarias + + + + + + + + + +Verifica que la fecha de creación de una tarea sea una fecha valida + + + + + +## Lenguaje ubicuo: + + + +**Modelo (Task):** Se utiliza el término "Task" para referirse al modelo.el término "Task" representa la entidad que está siendo modelada en la base de datos. + +**ModelForm:** El nombre TaskForm comunica que este formulario está especÃficamente diseñado para el modelo Task. Utilizar "Form" al final del nombre es una convención común para los formularios basados en modelos en Django. + +**Meta:** En Django, la clase Meta se utiliza para proporcionar metainformación sobre el formulario, como el modelo al que está vinculado y los campos que deben incluirse. + +**fields = ['title', 'description', 'important', 'fecha_limite']:** Al especificar los campos que deben incluirse en el formulario, se sigue utilizando el lenguaje del modelo. En este caso, los campos son 'title', 'description', 'important', y 'fecha_limite', que son los mismos campos definidos en el modelo Task. + + + + +**title:** Un campo de caracteres que almacena el tÃtulo de la tarea con una longitud máxima de 200 caracteres. + +**description:** Un campo de texto más largo que almacena la descripción de la tarea con una longitud máxima de 1000 caracteres. + +**created:** Un campo de fecha y hora que se establece automáticamente en la fecha y hora actual cuando se crea la tarea. + +**datecompleted:** Un campo de fecha y hora que puede ser nulo y en blanco. Almacena la fecha y hora en que se completó la tarea. + +**important:** Un campo booleano que indica si la tarea es importante o no. El valor predeterminado es False. + +**user:** Una clave externa que se relaciona con el modelo de usuario (User). Utiliza on_delete=models.CASCADE, lo que significa que si un usuario se elimina, también se eliminarán todas sus tareas asociadas. + +**fecha_limite:** Un campo de fecha que puede ser nulo y en blanco. Almacena la fecha lÃmite para la tarea. + +**def __str__(self)::** Un método que devuelve una representación de cadena del objeto. En este caso, devuelve una cadena que combina el tÃtulo de la tarea y el nombre de usuario del propietario. diff --git a/tasks/forms.py b/tasks/forms.py index 4f39411b..c391c047 100644 --- a/tasks/forms.py +++ b/tasks/forms.py @@ -4,4 +4,4 @@ class TaskForm(ModelForm): class Meta: model = Task - fields = ['title', 'description', 'important'] \ No newline at end of file + fields = ['title', 'description', 'important','fecha_limite',] \ No newline at end of file diff --git a/tasks/migrations/0003_task_due_date.py b/tasks/migrations/0003_task_due_date.py new file mode 100644 index 00000000..08a31c29 --- /dev/null +++ b/tasks/migrations/0003_task_due_date.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1 on 2023-12-18 14:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tasks', '0002_rename_datedcompleted_task_datecompleted'), + ] + + operations = [ + migrations.AddField( + model_name='task', + name='due_date', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/tasks/migrations/0004_rename_due_date_task_fecha_limite.py b/tasks/migrations/0004_rename_due_date_task_fecha_limite.py new file mode 100644 index 00000000..1d5448e3 --- /dev/null +++ b/tasks/migrations/0004_rename_due_date_task_fecha_limite.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1 on 2023-12-18 14:23 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('tasks', '0003_task_due_date'), + ] + + operations = [ + migrations.RenameField( + model_name='task', + old_name='due_date', + new_name='fecha_limite', + ), + ] diff --git a/tasks/models.py b/tasks/models.py index ea0cbfe5..0cc203ce 100644 --- a/tasks/models.py +++ b/tasks/models.py @@ -1,15 +1,14 @@ from django.db import models from django.contrib.auth.models import User -# Create your models here. - class Task(models.Model): - title = models.CharField(max_length=200) - description = models.TextField(max_length=1000) - created = models.DateTimeField(auto_now_add=True) - datecompleted = models.DateTimeField(null=True, blank=True) - important = models.BooleanField(default=False) - user = models.ForeignKey(User, on_delete=models.CASCADE) + title = models.CharField(max_length=200) + description = models.TextField(max_length=1000) + created = models.DateTimeField(auto_now_add=True) + datecompleted = models.DateTimeField(null=True, blank=True) + important = models.BooleanField(default=False) + user = models.ForeignKey(User, on_delete=models.CASCADE) + fecha_limite = models.DateField(null=True, blank=True) - def __str__(self): - return self.title + ' - ' + self.user.username + def _str_(self): + return self.title + ' - ' + self.user.username diff --git a/tasks/templates/create_task.html b/tasks/templates/create_task.html index 95ddbedd..8d42aea2 100644 --- a/tasks/templates/create_task.html +++ b/tasks/templates/create_task.html @@ -2,13 +2,22 @@ {% block content %} -