mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-28 01:09:37 +02:00
commit
303eeab113
30 changed files with 195 additions and 556 deletions
1
LICENSE
1
LICENSE
|
@ -14,7 +14,6 @@
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 3, 29 June 2007
|
Version 3, 29 June 2007
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Generated by Django 5.0.6 on 2024-06-28 01:01
|
# Generated by Django 5.0.8 on 2024-08-11 02:25
|
||||||
|
|
||||||
import django.contrib.postgres.fields
|
import django.contrib.postgres.fields
|
||||||
|
import django.db.models.deletion
|
||||||
|
import django_resized.forms
|
||||||
|
import uuid
|
||||||
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,23 +13,109 @@ class Migration(migrations.Migration):
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Checklist',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('date', models.DateField(blank=True, null=True)),
|
||||||
|
('is_public', models.BooleanField(default=False)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='ChecklistItem',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('is_checked', models.BooleanField(default=False)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('checklist', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='adventures.checklist')),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Collection',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('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)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('is_archived', models.BooleanField(default=False)),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='checklist',
|
||||||
|
name='collection',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection'),
|
||||||
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Adventure',
|
name='Adventure',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
('type', models.CharField(max_length=100)),
|
('type', models.CharField(choices=[('visited', 'Visited'), ('planned', 'Planned'), ('lodging', 'Lodging'), ('dining', 'Dining')], max_length=100)),
|
||||||
('name', models.CharField(max_length=200)),
|
('name', models.CharField(max_length=200)),
|
||||||
('location', models.CharField(blank=True, max_length=200, null=True)),
|
('location', models.CharField(blank=True, max_length=200, null=True)),
|
||||||
('activity_types', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), blank=True, null=True, size=None)),
|
('activity_types', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), blank=True, null=True, size=None)),
|
||||||
('description', models.TextField(blank=True, null=True)),
|
('description', models.TextField(blank=True, null=True)),
|
||||||
('rating', models.FloatField(blank=True, null=True)),
|
('rating', models.FloatField(blank=True, null=True)),
|
||||||
('link', models.URLField(blank=True, null=True)),
|
('link', models.URLField(blank=True, null=True)),
|
||||||
('image', models.ImageField(blank=True, null=True, upload_to='images/')),
|
('image', django_resized.forms.ResizedImageField(blank=True, crop=None, force_format='WEBP', keep_meta=True, null=True, quality=75, scale=None, size=[1920, 1080], upload_to='images/')),
|
||||||
('date', models.DateField(blank=True, null=True)),
|
('date', models.DateField(blank=True, null=True)),
|
||||||
('trip_id', models.IntegerField(blank=True, null=True)),
|
('is_public', models.BooleanField(default=False)),
|
||||||
|
('longitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
|
||||||
|
('latitude', models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Note',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('content', models.TextField(blank=True, null=True)),
|
||||||
|
('links', django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), blank=True, null=True, size=None)),
|
||||||
|
('date', models.DateField(blank=True, null=True)),
|
||||||
|
('is_public', models.BooleanField(default=False)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Transportation',
|
||||||
|
fields=[
|
||||||
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||||
|
('type', models.CharField(choices=[('car', 'Car'), ('plane', 'Plane'), ('train', 'Train'), ('bus', 'Bus'), ('boat', 'Boat'), ('bike', 'Bike'), ('walking', 'Walking'), ('other', 'Other')], max_length=100)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('description', models.TextField(blank=True, null=True)),
|
||||||
|
('rating', models.FloatField(blank=True, null=True)),
|
||||||
|
('link', models.URLField(blank=True, null=True)),
|
||||||
|
('date', models.DateTimeField(blank=True, null=True)),
|
||||||
|
('flight_number', models.CharField(blank=True, max_length=100, null=True)),
|
||||||
|
('from_location', models.CharField(blank=True, max_length=200, null=True)),
|
||||||
|
('to_location', models.CharField(blank=True, max_length=200, null=True)),
|
||||||
|
('is_public', models.BooleanField(default=False)),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
||||||
|
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-06-28 01:01
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
initial = True
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0001_initial'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='user_id',
|
|
||||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-06-28 15:29
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0002_initial'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='is_public',
|
|
||||||
field=models.BooleanField(default=False),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-06-28 18:30
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0003_adventure_is_public'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='latitude',
|
|
||||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='longitude',
|
|
||||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=9, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,37 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-09 16:49
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0004_adventure_latitude_adventure_longitude'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='trip_id',
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Trip',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('type', models.CharField(max_length=100)),
|
|
||||||
('location', models.CharField(blank=True, max_length=200, null=True)),
|
|
||||||
('date', models.DateField(blank=True, null=True)),
|
|
||||||
('is_public', models.BooleanField(default=False)),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='trip',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.trip'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-09 16:58
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0005_remove_adventure_trip_id_trip_adventure_trip'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='type',
|
|
||||||
field=models.CharField(choices=[('visited', 'Visited'), ('planned', 'Planned'), ('featured', 'Featured')], max_length=100),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='trip',
|
|
||||||
name='type',
|
|
||||||
field=models.CharField(choices=[('visited', 'Visited'), ('planned', 'Planned'), ('featured', 'Featured')], max_length=100),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,42 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-15 12:57
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0006_alter_adventure_type_alter_trip_type'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='trip',
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='type',
|
|
||||||
field=models.CharField(choices=[('visited', 'Visited'), ('planned', 'Planned')], max_length=100),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Collection',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('is_public', models.BooleanField(default=False)),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='collection',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection'),
|
|
||||||
),
|
|
||||||
migrations.DeleteModel(
|
|
||||||
name='Trip',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-15 13:05
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0007_remove_adventure_trip_alter_adventure_type_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='collection',
|
|
||||||
name='description',
|
|
||||||
field=models.TextField(blank=True, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,19 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-18 15:06
|
|
||||||
|
|
||||||
import django_resized.forms
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0008_collection_description'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='image',
|
|
||||||
field=django_resized.forms.ResizedImageField(blank=True, crop=None, force_format='WEBP', keep_meta=True, null=True, quality=75, scale=None, size=[1920, 1080], upload_to='images/'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,26 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-18 19:27
|
|
||||||
|
|
||||||
import django.utils.timezone
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0009_alter_adventure_image'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='created_at',
|
|
||||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='collection',
|
|
||||||
name='created_at',
|
|
||||||
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
|
|
||||||
preserve_default=False,
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.6 on 2024-07-19 12:55
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0010_adventure_created_at_collection_created_at'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='updated_at',
|
|
||||||
field=models.DateTimeField(auto_now=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,23 +0,0 @@
|
||||||
# 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),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,41 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-07-27 22:49
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0012_collection_end_date_collection_start_date'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='adventure',
|
|
||||||
name='type',
|
|
||||||
field=models.CharField(choices=[('visited', 'Visited'), ('planned', 'Planned'), ('lodging', 'Lodging'), ('dining', 'Dining')], max_length=100),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Transportation',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('type', models.CharField(max_length=100)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('description', models.TextField(blank=True, null=True)),
|
|
||||||
('rating', models.FloatField(blank=True, null=True)),
|
|
||||||
('link', models.URLField(blank=True, null=True)),
|
|
||||||
('date', models.DateTimeField(blank=True, null=True)),
|
|
||||||
('flight_number', models.CharField(blank=True, max_length=100, null=True)),
|
|
||||||
('from_location', models.CharField(blank=True, max_length=200, null=True)),
|
|
||||||
('to_location', models.CharField(blank=True, max_length=200, null=True)),
|
|
||||||
('is_public', models.BooleanField(default=False)),
|
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
||||||
('updated_at', models.DateTimeField(auto_now=True)),
|
|
||||||
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,35 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-04 01:01
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0013_alter_adventure_type_transportation'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='transportation',
|
|
||||||
name='type',
|
|
||||||
field=models.CharField(choices=[('car', 'Car'), ('plane', 'Plane'), ('train', 'Train'), ('bus', 'Bus'), ('boat', 'Boat'), ('bike', 'Bike'), ('walking', 'Walking'), ('other', 'Other')], max_length=100),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Note',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('content', models.TextField(blank=True, null=True)),
|
|
||||||
('date', models.DateTimeField(blank=True, null=True)),
|
|
||||||
('is_public', models.BooleanField(default=False)),
|
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
||||||
('updated_at', models.DateTimeField(auto_now=True)),
|
|
||||||
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-04 01:09
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0014_alter_transportation_type_note'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='note',
|
|
||||||
name='date',
|
|
||||||
field=models.DateField(blank=True, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-04 02:00
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0015_alter_note_date'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='note',
|
|
||||||
name='date',
|
|
||||||
field=models.DateTimeField(blank=True, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-04 02:01
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0016_alter_note_date'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='note',
|
|
||||||
name='date',
|
|
||||||
field=models.DateField(blank=True, null=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,19 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-04 13:19
|
|
||||||
|
|
||||||
import django.contrib.postgres.fields
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0017_alter_note_date'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='note',
|
|
||||||
name='links',
|
|
||||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), blank=True, null=True, size=None),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-05 17:51
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0018_note_links'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='collection',
|
|
||||||
name='updated_at',
|
|
||||||
field=models.DateTimeField(auto_now=True),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,41 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-05 19:52
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0019_collection_updated_at'),
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Checklist',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('date', models.DateField(blank=True, null=True)),
|
|
||||||
('is_public', models.BooleanField(default=False)),
|
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
||||||
('updated_at', models.DateTimeField(auto_now=True)),
|
|
||||||
('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='adventures.collection')),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='ChecklistItem',
|
|
||||||
fields=[
|
|
||||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
|
||||||
('name', models.CharField(max_length=200)),
|
|
||||||
('is_checked', models.BooleanField(default=False)),
|
|
||||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
||||||
('updated_at', models.DateTimeField(auto_now=True)),
|
|
||||||
('checklist', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='adventures.checklist')),
|
|
||||||
('user_id', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 5.0.7 on 2024-08-07 16:20
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('adventures', '0020_checklist_checklistitem'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='collection',
|
|
||||||
name='is_archived',
|
|
||||||
field=models.BooleanField(default=False),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import uuid
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
@ -31,7 +32,7 @@ User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
class Adventure(models.Model):
|
class Adventure(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
type = models.CharField(max_length=100, choices=ADVENTURE_TYPES)
|
type = models.CharField(max_length=100, choices=ADVENTURE_TYPES)
|
||||||
|
@ -62,7 +63,7 @@ class Adventure(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class Collection(models.Model):
|
class Collection(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
|
@ -86,7 +87,7 @@ class Collection(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class Transportation(models.Model):
|
class Transportation(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
type = models.CharField(max_length=100, choices=TRANSPORTATION_TYPES)
|
type = models.CharField(max_length=100, choices=TRANSPORTATION_TYPES)
|
||||||
|
@ -114,7 +115,7 @@ class Transportation(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class Note(models.Model):
|
class Note(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
|
@ -137,7 +138,7 @@ class Note(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class Checklist(models.Model):
|
class Checklist(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
|
@ -158,7 +159,7 @@ class Checklist(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
class ChecklistItem(models.Model):
|
class ChecklistItem(models.Model):
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
user_id = models.ForeignKey(
|
user_id = models.ForeignKey(
|
||||||
User, on_delete=models.CASCADE, default=default_user_id)
|
User, on_delete=models.CASCADE, default=default_user_id)
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 5.0.8 on 2024-08-11 12:26
|
||||||
|
|
||||||
|
import uuid
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0002_alter_customuser_profile_pic'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='id',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='uuid',
|
||||||
|
field=models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,9 +1,11 @@
|
||||||
|
import uuid
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django_resized import ResizedImageField
|
from django_resized import ResizedImageField
|
||||||
|
|
||||||
class CustomUser(AbstractUser):
|
class CustomUser(AbstractUser):
|
||||||
profile_pic = ResizedImageField(force_format="WEBP", quality=75, null=True, blank=True, upload_to='profile-pics/')
|
profile_pic = ResizedImageField(force_format="WEBP", quality=75, null=True, blank=True, upload_to='profile-pics/')
|
||||||
|
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.username
|
return self.username
|
|
@ -154,9 +154,12 @@
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="flex justify-between">
|
<div class="flex justify-between">
|
||||||
<h2 class="text-2xl font-semibold -mt-2 break-words text-wrap">
|
<button
|
||||||
|
on:click={() => goto(`/adventures/${adventure.id}`)}
|
||||||
|
class="text-2xl font-semibold -mt-2 break-words text-wrap hover:underline"
|
||||||
|
>
|
||||||
{adventure.name}
|
{adventure.name}
|
||||||
</h2>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{#if adventure.type == 'visited' && user?.pk == adventure.user_id}
|
{#if adventure.type == 'visited' && user?.pk == adventure.user_id}
|
||||||
|
|
|
@ -80,7 +80,20 @@
|
||||||
class="card min-w-max lg:w-96 md:w-80 sm:w-60 xs:w-40 bg-primary-content shadow-xl overflow-hidden text-base-content"
|
class="card min-w-max lg:w-96 md:w-80 sm:w-60 xs:w-40 bg-primary-content shadow-xl overflow-hidden text-base-content"
|
||||||
>
|
>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h2 class="card-title overflow-ellipsis">{collection.name}</h2>
|
<div class="flex justify-between">
|
||||||
|
<button
|
||||||
|
on:click={() => goto(`/collections/${collection.id}`)}
|
||||||
|
class="text-2xl font-semibold -mt-2 break-words text-wrap hover:underline"
|
||||||
|
>
|
||||||
|
{collection.name}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="inline-flex gap-2 mb-2">
|
||||||
|
<div class="badge badge-neutral">{collection.is_public ? 'Public' : 'Private'}</div>
|
||||||
|
{#if collection.is_archived}
|
||||||
|
<div class="badge badge-warning">Archived</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
<p>{collection.adventures.length} Adventures</p>
|
<p>{collection.adventures.length} Adventures</p>
|
||||||
{#if collection.start_date && collection.end_date}
|
{#if collection.start_date && collection.end_date}
|
||||||
<p>
|
<p>
|
||||||
|
@ -96,12 +109,7 @@
|
||||||
) + 1}{' '}
|
) + 1}{' '}
|
||||||
days
|
days
|
||||||
</p>{/if}
|
</p>{/if}
|
||||||
<div class="inline-flex gap-2 mb-2">
|
|
||||||
<div class="badge badge-neutral">{collection.is_public ? 'Public' : 'Private'}</div>
|
|
||||||
{#if collection.is_archived}
|
|
||||||
<div class="badge badge-warning">Archived</div>
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
<div class="card-actions justify-end">
|
<div class="card-actions justify-end">
|
||||||
{#if type != 'link'}
|
{#if type != 'link'}
|
||||||
<button on:click={() => (isWarningModalOpen = true)} class="btn btn-secondary"
|
<button on:click={() => (isWarningModalOpen = true)} class="btn btn-secondary"
|
||||||
|
|
|
@ -10,7 +10,7 @@ export type User = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Adventure = {
|
export type Adventure = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
type: string;
|
type: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -58,7 +58,7 @@ export type Point = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Collection = {
|
export type Collection = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description: string;
|
||||||
|
@ -91,7 +91,7 @@ export type OpenStreetMapPlace = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Transportation = {
|
export type Transportation = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
type: string;
|
type: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -109,7 +109,7 @@ export type Transportation = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Note = {
|
export type Note = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
name: string;
|
name: string;
|
||||||
content: string | null;
|
content: string | null;
|
||||||
|
@ -122,7 +122,7 @@ export type Note = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Checklist = {
|
export type Checklist = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
name: string;
|
name: string;
|
||||||
items: ChecklistItem[];
|
items: ChecklistItem[];
|
||||||
|
@ -134,7 +134,7 @@ export type Checklist = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ChecklistItem = {
|
export type ChecklistItem = {
|
||||||
id: number;
|
id: string;
|
||||||
user_id: number;
|
user_id: number;
|
||||||
name: string;
|
name: string;
|
||||||
is_checked: boolean;
|
is_checked: boolean;
|
||||||
|
|
|
@ -426,7 +426,7 @@
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if adventures.length == 0 && transportations.length == 0}
|
{#if adventures.length == 0 && transportations.length == 0 && notes.length == 0 && checklists.length == 0}
|
||||||
<NotFound error={undefined} />
|
<NotFound error={undefined} />
|
||||||
{/if}
|
{/if}
|
||||||
{#if adventures.length > 0}
|
{#if adventures.length > 0}
|
||||||
|
|
|
@ -22,17 +22,18 @@
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
if (!showVisited) {
|
if (!showVisited) {
|
||||||
markers = markers.filter((marker) => marker.type !== 'visited');
|
markers = data.props.markers.filter((marker) => marker.type !== 'visited');
|
||||||
} else {
|
} else {
|
||||||
const visitedMarkers = data.props.markers.filter((marker) => marker.type === 'visited');
|
const visitedMarkers = data.props.markers.filter((marker) => marker.type === 'visited');
|
||||||
markers = [...markers, ...visitedMarkers];
|
markers = [...markers, ...visitedMarkers];
|
||||||
}
|
}
|
||||||
if (!showPlanned) {
|
if (!showPlanned) {
|
||||||
markers = markers.filter((marker) => marker.type !== 'planned');
|
markers = data.props.markers.filter((marker) => marker.type !== 'planned');
|
||||||
} else {
|
} else {
|
||||||
const plannedMarkers = data.props.markers.filter((marker) => marker.type === 'planned');
|
const plannedMarkers = data.props.markers.filter((marker) => marker.type === 'planned');
|
||||||
markers = [...markers, ...plannedMarkers];
|
markers = [...markers, ...plannedMarkers];
|
||||||
}
|
}
|
||||||
|
console.log(markers);
|
||||||
}
|
}
|
||||||
|
|
||||||
let newMarker = [];
|
let newMarker = [];
|
||||||
|
@ -55,15 +56,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function createNewAdventure(event) {
|
function createNewAdventure(event) {
|
||||||
// markers = visited
|
|
||||||
// .filter((adventure) => adventure.latitude !== null && adventure.longitude !== null)
|
|
||||||
// .map((adventure) => {
|
|
||||||
// return {
|
|
||||||
// lngLat: [adventure.longitude, adventure.latitude] as [number, number],
|
|
||||||
// name: adventure.name,
|
|
||||||
// type: adventure.type
|
|
||||||
// };
|
|
||||||
// });
|
|
||||||
console.log(event.detail);
|
console.log(event.detail);
|
||||||
|
|
||||||
let newMarker = {
|
let newMarker = {
|
||||||
|
@ -109,25 +101,45 @@
|
||||||
let createModalOpen = false;
|
let createModalOpen = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<h1 class="text-center font-bold text-4xl">Adventure Map</h1>
|
||||||
|
|
||||||
|
<div class="m-2 flex flex-col items-center justify-center">
|
||||||
|
<div class="gap-4 border-solid border-2 rounded-lg p-2 mb-4 border-neutral max-w-4xl">
|
||||||
|
<p class="font-semibold text-center text-xl mb-2">Map Options</p>
|
||||||
|
<div class="flex flex-wrap items-center justify-center gap-4">
|
||||||
<label class="label cursor-pointer">
|
<label class="label cursor-pointer">
|
||||||
<span class="label-text">Visited</span>
|
<span class="label-text mr-1">Visited</span>
|
||||||
<input type="checkbox" bind:checked={showVisited} class="checkbox checkbox-primary" />
|
<input type="checkbox" bind:checked={showVisited} class="checkbox checkbox-primary" />
|
||||||
</label>
|
</label>
|
||||||
<label class="label cursor-pointer">
|
<label class="label cursor-pointer">
|
||||||
<span class="label-text">Planned</span>
|
<span class="label-text mr-1">Planned</span>
|
||||||
<input type="checkbox" bind:checked={showPlanned} class="checkbox checkbox-primary" />
|
<input type="checkbox" bind:checked={showPlanned} class="checkbox checkbox-primary" />
|
||||||
</label>
|
</label>
|
||||||
|
<!-- <div class="divider divider-horizontal"></div> -->
|
||||||
|
<label for="show-geo">Show Borders</label>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
id="show-geo"
|
||||||
|
name="show-geo"
|
||||||
|
class="checkbox"
|
||||||
|
bind:checked={showGEO}
|
||||||
|
/>
|
||||||
|
<!-- <div class="divider divider-horizontal"></div> -->
|
||||||
{#if newMarker.length > 0}
|
{#if newMarker.length > 0}
|
||||||
<button type="button" class="btn btn-primary mb-2" on:click={() => (createModalOpen = true)}
|
<button type="button" class="btn btn-primary mb-2" on:click={() => (createModalOpen = true)}
|
||||||
>Add New Adventure at Marker</button
|
>Add New Adventure at Marker</button
|
||||||
>
|
>
|
||||||
<button type="button" class="btn btn-neutral mb-2" on:click={clearMarkers}>Clear Marker</button>
|
<button type="button" class="btn btn-neutral mb-2" on:click={clearMarkers}
|
||||||
|
>Clear Marker</button
|
||||||
|
>
|
||||||
{:else}
|
{:else}
|
||||||
<button type="button" class="btn btn-primary mb-2" on:click={() => (createModalOpen = true)}
|
<button type="button" class="btn btn-primary mb-2" on:click={() => (createModalOpen = true)}
|
||||||
>Add New Adventure</button
|
>Add New Adventure</button
|
||||||
>
|
>
|
||||||
{/if}
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{#if createModalOpen}
|
{#if createModalOpen}
|
||||||
<NewAdventure
|
<NewAdventure
|
||||||
|
@ -138,9 +150,6 @@
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<label for="show-geo">Show Borders?</label>
|
|
||||||
<input type="checkbox" id="shpw-gep" name="show-geo" class="checkbox" bind:checked={showGEO} />
|
|
||||||
|
|
||||||
<MapLibre
|
<MapLibre
|
||||||
style="https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json"
|
style="https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json"
|
||||||
class="relative aspect-[9/16] max-h-[70vh] w-full sm:aspect-video sm:max-h-full"
|
class="relative aspect-[9/16] max-h-[70vh] w-full sm:aspect-video sm:max-h-full"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue