diff --git a/backend/server/adventures/migrations/0012_collection_end_date_collection_start_date.py b/backend/server/adventures/migrations/0012_collection_end_date_collection_start_date.py new file mode 100644 index 0000000..744d83a --- /dev/null +++ b/backend/server/adventures/migrations/0012_collection_end_date_collection_start_date.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.7 on 2024-07-27 18:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('adventures', '0011_adventure_updated_at'), + ] + + operations = [ + migrations.AddField( + model_name='collection', + name='end_date', + field=models.DateField(blank=True, null=True), + ), + migrations.AddField( + model_name='collection', + name='start_date', + field=models.DateField(blank=True, null=True), + ), + ] diff --git a/backend/server/adventures/models.py b/backend/server/adventures/models.py index 854ce4e..9cc642b 100644 --- a/backend/server/adventures/models.py +++ b/backend/server/adventures/models.py @@ -56,6 +56,8 @@ class Collection(models.Model): description = models.TextField(blank=True, null=True) is_public = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) + start_date = models.DateField(blank=True, null=True) + end_date = models.DateField(blank=True, null=True) # if connected adventures are private and collection is public, raise an error def clean(self): diff --git a/backend/server/adventures/serializers.py b/backend/server/adventures/serializers.py index 40f24bd..84c38a2 100644 --- a/backend/server/adventures/serializers.py +++ b/backend/server/adventures/serializers.py @@ -29,7 +29,7 @@ class CollectionSerializer(serializers.ModelSerializer): class Meta: model = Collection # fields are all plus the adventures field - fields = ['id', 'description', 'user_id', 'name', 'is_public', 'adventures'] + fields = ['id', 'description', 'user_id', 'name', 'is_public', 'adventures', 'created_at', 'start_date', 'end_date'] \ No newline at end of file diff --git a/frontend/src/lib/components/CollectionCard.svelte b/frontend/src/lib/components/CollectionCard.svelte index cd6d314..bb25110 100644 --- a/frontend/src/lib/components/CollectionCard.svelte +++ b/frontend/src/lib/components/CollectionCard.svelte @@ -47,6 +47,20 @@
{collection.adventures.length} Adventures
+ {#if collection.start_date && collection.end_date} ++ Dates: {new Date(collection.start_date).toLocaleDateString()} - {new Date( + collection.end_date + ).toLocaleDateString()} +
+ ++ Duration: {Math.floor( + (new Date(collection.end_date).getTime() - new Date(collection.start_date).getTime()) / + (1000 * 60 * 60 * 24) + )}{' '} + days +
{/if}