From ac1649fbbb304dbc1adeffc13fea8b5640357c7b Mon Sep 17 00:00:00 2001 From: yann Date: Fri, 5 Sep 2025 11:34:31 +0200 Subject: [PATCH] init new apps --- lettings/__init__.py | 0 lettings/admin.py | 3 +++ lettings/apps.py | 5 ++++ lettings/migrations/0001_initial.py | 36 +++++++++++++++++++++++++++++ lettings/migrations/__init__.py | 0 lettings/models.py | 23 ++++++++++++++++++ lettings/tests.py | 3 +++ lettings/views.py | 3 +++ oc_lettings_site/settings.py | 2 ++ profiles/__init__.py | 0 profiles/admin.py | 3 +++ profiles/apps.py | 5 ++++ profiles/migrations/0001_initial.py | 25 ++++++++++++++++++++ profiles/migrations/__init__.py | 0 profiles/models.py | 11 +++++++++ profiles/tests.py | 3 +++ profiles/views.py | 3 +++ 17 files changed, 125 insertions(+) create mode 100644 lettings/__init__.py create mode 100644 lettings/admin.py create mode 100644 lettings/apps.py create mode 100644 lettings/migrations/0001_initial.py create mode 100644 lettings/migrations/__init__.py create mode 100644 lettings/models.py create mode 100644 lettings/tests.py create mode 100644 lettings/views.py create mode 100644 profiles/__init__.py create mode 100644 profiles/admin.py create mode 100644 profiles/apps.py create mode 100644 profiles/migrations/0001_initial.py create mode 100644 profiles/migrations/__init__.py create mode 100644 profiles/models.py create mode 100644 profiles/tests.py create mode 100644 profiles/views.py diff --git a/lettings/__init__.py b/lettings/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lettings/admin.py b/lettings/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/lettings/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/lettings/apps.py b/lettings/apps.py new file mode 100644 index 0000000..b6abff1 --- /dev/null +++ b/lettings/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class LettingsConfig(AppConfig): + name = 'lettings' diff --git a/lettings/migrations/0001_initial.py b/lettings/migrations/0001_initial.py new file mode 100644 index 0000000..0ddc7f8 --- /dev/null +++ b/lettings/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# Generated by Django 3.0 on 2025-09-04 15:36 + +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Address', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('number', models.PositiveIntegerField(validators=[django.core.validators.MaxValueValidator(9999)])), + ('street', models.CharField(max_length=64)), + ('city', models.CharField(max_length=64)), + ('state', models.CharField(max_length=2, validators=[django.core.validators.MinLengthValidator(2)])), + ('zip_code', models.PositiveIntegerField(validators=[django.core.validators.MaxValueValidator(99999)])), + ('country_iso_code', models.CharField(max_length=3, validators=[django.core.validators.MinLengthValidator(3)])), + ], + ), + migrations.CreateModel( + name='Letting', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=256)), + ('address', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='lettings.Address')), + ], + ), + ] diff --git a/lettings/migrations/__init__.py b/lettings/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lettings/models.py b/lettings/models.py new file mode 100644 index 0000000..aac0574 --- /dev/null +++ b/lettings/models.py @@ -0,0 +1,23 @@ +from django.db import models +from django.core.validators import MaxValueValidator, MinLengthValidator + + +class Address(models.Model): + number = models.PositiveIntegerField(validators=[MaxValueValidator(9999)]) + street = models.CharField(max_length=64) + city = models.CharField(max_length=64) + state = models.CharField(max_length=2, validators=[MinLengthValidator(2)]) + zip_code = models.PositiveIntegerField(validators=[MaxValueValidator(99999)]) + country_iso_code = models.CharField(max_length=3, validators=[MinLengthValidator(3)]) + + def __str__(self): + return f'{self.number} {self.street}' + + +class Letting(models.Model): + title = models.CharField(max_length=256) + address = models.OneToOneField(Address, on_delete=models.CASCADE) + + def __str__(self): + return self.title + diff --git a/lettings/tests.py b/lettings/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/lettings/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/lettings/views.py b/lettings/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/lettings/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/oc_lettings_site/settings.py b/oc_lettings_site/settings.py index a18bee8..1a625d5 100644 --- a/oc_lettings_site/settings.py +++ b/oc_lettings_site/settings.py @@ -28,6 +28,8 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'lettings', + 'profiles' ] MIDDLEWARE = [ diff --git a/profiles/__init__.py b/profiles/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/profiles/admin.py b/profiles/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/profiles/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/profiles/apps.py b/profiles/apps.py new file mode 100644 index 0000000..5501fda --- /dev/null +++ b/profiles/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ProfilesConfig(AppConfig): + name = 'profiles' diff --git a/profiles/migrations/0001_initial.py b/profiles/migrations/0001_initial.py new file mode 100644 index 0000000..e01efe5 --- /dev/null +++ b/profiles/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# Generated by Django 3.0 on 2025-09-04 15:36 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Profile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('favorite_city', models.CharField(blank=True, max_length=64)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/profiles/migrations/__init__.py b/profiles/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/profiles/models.py b/profiles/models.py new file mode 100644 index 0000000..a260c61 --- /dev/null +++ b/profiles/models.py @@ -0,0 +1,11 @@ +from django.db import models +from django.contrib.auth.models import User + + +class Profile(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + favorite_city = models.CharField(max_length=64, blank=True) + + def __str__(self): + return self.user.username + diff --git a/profiles/tests.py b/profiles/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/profiles/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/profiles/views.py b/profiles/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/profiles/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.