diff --git a/.gitignore b/.gitignore
index b4405ebab4..923c196816 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,8 @@
**/__pycache__
*.pyc
venv
+env
+.idea
+backup.sqlite3
+oc-lettings-site_old.sqlite3
+flake8-report
\ No newline at end of file
diff --git a/lettings/__init__.py b/lettings/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/lettings/admin.py b/lettings/admin.py
new file mode 100644
index 0000000000..b31639f1b1
--- /dev/null
+++ b/lettings/admin.py
@@ -0,0 +1,7 @@
+from django.contrib import admin
+
+from lettings.models import Address, Letting
+
+
+admin.site.register(Letting)
+admin.site.register(Address)
diff --git a/lettings/apps.py b/lettings/apps.py
new file mode 100644
index 0000000000..b6abff1791
--- /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 0000000000..9a008d3d77
--- /dev/null
+++ b/lettings/migrations/0001_initial.py
@@ -0,0 +1,36 @@
+# Generated by Django 3.0 on 2026-05-18 12:53
+
+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, related_name='new_letting', to='lettings.Address')),
+ ],
+ ),
+ ]
diff --git a/lettings/migrations/0002_auto_20260518_1543.py b/lettings/migrations/0002_auto_20260518_1543.py
new file mode 100644
index 0000000000..47cb6b8db2
--- /dev/null
+++ b/lettings/migrations/0002_auto_20260518_1543.py
@@ -0,0 +1,48 @@
+# Generated by Django 3.0 on 2026-05-18 13:43
+
+from django.db import migrations
+
+
+def copy_address(apps, schema_editor):
+ OldAddress = apps.get_model('oc_lettings_site', 'Address')
+ NewAddress = apps.get_model('lettings', 'Address')
+
+ for obj in OldAddress.objects.all():
+ NewAddress.objects.create(
+ id=obj.id,
+ number=obj.number,
+ street=obj.street,
+ city=obj.city,
+ state=obj.state,
+ zip_code=obj.zip_code,
+ country_iso_code=obj.country_iso_code,
+ )
+
+
+def copy_lettings(apps, schema_editor):
+ OldLetting = apps.get_model('oc_lettings_site', 'Letting')
+ NewLetting = apps.get_model('lettings', 'Letting')
+ NewAddress = apps.get_model('lettings', 'Address')
+
+ for obj in OldLetting.objects.all():
+
+ new_address = NewAddress.objects.get(id=obj.address.id)
+
+ NewLetting.objects.create(
+ id=obj.id,
+ title=obj.title,
+ address=new_address,
+ )
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('lettings', '0001_initial'),
+ ('oc_lettings_site', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.RunPython(copy_address),
+ migrations.RunPython(copy_lettings),
+ ]
diff --git a/lettings/migrations/0003_auto_20260518_1551.py b/lettings/migrations/0003_auto_20260518_1551.py
new file mode 100644
index 0000000000..11b098bd67
--- /dev/null
+++ b/lettings/migrations/0003_auto_20260518_1551.py
@@ -0,0 +1,19 @@
+# Generated by Django 3.0 on 2026-05-18 13:51
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('lettings', '0002_auto_20260518_1543'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='letting',
+ name='address',
+ field=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 0000000000..e69de29bb2
diff --git a/oc_lettings_site/models.py b/lettings/models.py
similarity index 75%
rename from oc_lettings_site/models.py
rename to lettings/models.py
index ed255e8c11..df27eead49 100644
--- a/oc_lettings_site/models.py
+++ b/lettings/models.py
@@ -1,6 +1,5 @@
from django.db import models
from django.core.validators import MaxValueValidator, MinLengthValidator
-from django.contrib.auth.models import User
class Address(models.Model):
@@ -11,6 +10,10 @@ class Address(models.Model):
zip_code = models.PositiveIntegerField(validators=[MaxValueValidator(99999)])
country_iso_code = models.CharField(max_length=3, validators=[MinLengthValidator(3)])
+ class Meta:
+ verbose_name = "Address"
+ verbose_name_plural = "Addresses"
+
def __str__(self):
return f'{self.number} {self.street}'
@@ -21,11 +24,3 @@ class Letting(models.Model):
def __str__(self):
return self.title
-
-
-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/templates/lettings_index.html b/lettings/templates/lettings/index.html
similarity index 89%
rename from templates/lettings_index.html
rename to lettings/templates/lettings/index.html
index 92857a78d9..a85f3a348e 100644
--- a/templates/lettings_index.html
+++ b/lettings/templates/lettings/index.html
@@ -20,7 +20,7 @@
@@ -36,7 +36,7 @@
Home
-
+
Profiles
diff --git a/templates/letting.html b/lettings/templates/lettings/letting.html
similarity index 95%
rename from templates/letting.html
rename to lettings/templates/lettings/letting.html
index 7e5f3a73fd..252d68035e 100644
--- a/templates/letting.html
+++ b/lettings/templates/lettings/letting.html
@@ -25,14 +25,14 @@
diff --git a/lettings/tests.py b/lettings/tests.py
new file mode 100644
index 0000000000..7ce503c2dd
--- /dev/null
+++ b/lettings/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/lettings/urls.py b/lettings/urls.py
new file mode 100644
index 0000000000..8b261ec831
--- /dev/null
+++ b/lettings/urls.py
@@ -0,0 +1,10 @@
+from django.urls import path
+
+from . import views
+
+app_name = 'lettings'
+
+urlpatterns = [
+ path('', views.index, name='index'),
+ path('
/', views.letting, name='letting'),
+]
diff --git a/lettings/views.py b/lettings/views.py
new file mode 100644
index 0000000000..303a59e040
--- /dev/null
+++ b/lettings/views.py
@@ -0,0 +1,40 @@
+from django.shortcuts import render, get_object_or_404
+
+from .models import Letting
+
+
+# Aenean leo magna, vestibulum et tincidunt fermentum, consectetur quis velit. Sed non placerat
+# massa. Integer est nunc, pulvinar a tempor et, bibendum id arcu. Vestibulum ante ipsum primis in
+# faucibus orci luctus et ultrices posuere cubilia curae; Cras eget scelerisque
+def index(request):
+ lettings_list = Letting.objects.all()
+ context = {'lettings_list': lettings_list}
+ return render(request, 'lettings/index.html', context)
+
+
+# Cras ultricies dignissim purus, vitae hendrerit ex varius non. In accumsan porta nisl id
+# eleifend. Praesent dignissim, odio eu consequat pretium, purus urna vulputate arcu, vitae
+# efficitur lacus justo nec purus. Aenean finibus faucibus lectus at porta. Maecenas auctor, est ut
+# luctus congue, dui enim mattis enim, ac condimentum velit libero in magna. Suspendisse potenti.
+# In tempus a nisi sed laoreet. Suspendisse porta dui eget sem accumsan interdum. Ut quis urna
+# pellentesque justo mattis ullamcorper ac non tellus. In tristique mauris eu velit fermentum,
+# tempus pharetra est luctus. Vivamus consequat aliquam libero, eget bibendum lorem. Sed non dolor
+# risus. Mauris condimentum auctor elementum. Donec quis nisi ligula. Integer vehicula tincidunt
+# enim, ac lacinia augue pulvinar sit amet.
+def letting(request, letting_id):
+ try:
+ letting = Letting.objects.get(id=letting_id)
+
+ context = {
+ 'title': letting.title,
+ 'address': letting.address,
+ }
+ return render(request, 'lettings/letting.html', context=context)
+
+ except Letting.DoesNotExist:
+ context = {"type": "letting", "id": letting_id}
+ return render(request, 'error_404.html', context=context)
+
+ except Exception as e:
+ context = {"error": e}
+ return render(request, 'error_500.html', context=context)
diff --git a/oc-lettings-site.sqlite3 b/oc-lettings-site.sqlite3
index 3d885414f9..92f150a14e 100644
Binary files a/oc-lettings-site.sqlite3 and b/oc-lettings-site.sqlite3 differ
diff --git a/oc_lettings_site/admin.py b/oc_lettings_site/admin.py
index 63328c6dd3..e69de29bb2 100644
--- a/oc_lettings_site/admin.py
+++ b/oc_lettings_site/admin.py
@@ -1,10 +0,0 @@
-from django.contrib import admin
-
-from .models import Letting
-from .models import Address
-from .models import Profile
-
-
-admin.site.register(Letting)
-admin.site.register(Address)
-admin.site.register(Profile)
diff --git a/oc_lettings_site/migrations/0002_auto_20260518_1551.py b/oc_lettings_site/migrations/0002_auto_20260518_1551.py
new file mode 100644
index 0000000000..e865453170
--- /dev/null
+++ b/oc_lettings_site/migrations/0002_auto_20260518_1551.py
@@ -0,0 +1,30 @@
+# Generated by Django 3.0 on 2026-05-18 13:51
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('oc_lettings_site', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='letting',
+ name='address',
+ ),
+ migrations.RemoveField(
+ model_name='profile',
+ name='user',
+ ),
+ migrations.DeleteModel(
+ name='Address',
+ ),
+ migrations.DeleteModel(
+ name='Letting',
+ ),
+ migrations.DeleteModel(
+ name='Profile',
+ ),
+ ]
diff --git a/oc_lettings_site/settings.py b/oc_lettings_site/settings.py
index a18bee8106..e527926df9 100644
--- a/oc_lettings_site/settings.py
+++ b/oc_lettings_site/settings.py
@@ -22,6 +22,8 @@
INSTALLED_APPS = [
'oc_lettings_site.apps.OCLettingsSiteConfig',
+ 'lettings.apps.LettingsConfig',
+ 'profiles.apps.ProfilesConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
@@ -111,4 +113,4 @@
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
-STATICFILES_DIRS = [BASE_DIR / "static",]
+STATICFILES_DIRS = [BASE_DIR / "static", ]
diff --git a/oc_lettings_site/urls.py b/oc_lettings_site/urls.py
index f0ff5897ab..83498f45f2 100644
--- a/oc_lettings_site/urls.py
+++ b/oc_lettings_site/urls.py
@@ -1,13 +1,11 @@
from django.contrib import admin
-from django.urls import path
+from django.urls import path, include
from . import views
urlpatterns = [
path('', views.index, name='index'),
- path('lettings/', views.lettings_index, name='lettings_index'),
- path('lettings//', views.letting, name='letting'),
- path('profiles/', views.profiles_index, name='profiles_index'),
- path('profiles//', views.profile, name='profile'),
+ path('lettings/', include('lettings.urls')),
+ path('profiles/', include('profiles.urls')),
path('admin/', admin.site.urls),
]
diff --git a/oc_lettings_site/views.py b/oc_lettings_site/views.py
index a72db27074..967f48ff61 100644
--- a/oc_lettings_site/views.py
+++ b/oc_lettings_site/views.py
@@ -1,45 +1,11 @@
from django.shortcuts import render
-from .models import Letting, Profile
-
-
-# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque molestie quam lobortis leo consectetur ullamcorper non id est. Praesent dictum, nulla eget feugiat sagittis, sem mi convallis eros,
-# vitae dapibus nisi lorem dapibus sem. Maecenas pharetra purus ipsum, eget consequat ipsum lobortis quis. Phasellus eleifend ex auctor venenatis tempus.
-# Aliquam vitae erat ac orci placerat luctus. Nullam elementum urna nisi, pellentesque iaculis enim cursus in. Praesent volutpat porttitor magna, non finibus neque cursus id.
+# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque molestie quam lobortis leo
+# consectetur ullamcorper non id est. Praesent dictum, nulla eget feugiat sagittis, sem mi
+# convallis eros, vitae dapibus nisi lorem dapibus sem. Maecenas pharetra purus ipsum, eget
+# consequat ipsum lobortis quis. Phasellus eleifend ex auctor venenatis tempus. Aliquam vitae erat
+# ac orci placerat luctus. Nullam elementum urna nisi, pellentesque iaculis enim cursus in.
+# Praesent volutpat porttitor magna, non finibus neque cursus id.
def index(request):
return render(request, 'index.html')
-
-# Aenean leo magna, vestibulum et tincidunt fermentum, consectetur quis velit. Sed non placerat massa. Integer est nunc, pulvinar a
-# tempor et, bibendum id arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Cras eget scelerisque
-def lettings_index(request):
- lettings_list = Letting.objects.all()
- context = {'lettings_list': lettings_list}
- return render(request, 'lettings_index.html', context)
-
-
-#Cras ultricies dignissim purus, vitae hendrerit ex varius non. In accumsan porta nisl id eleifend. Praesent dignissim, odio eu consequat pretium, purus urna vulputate arcu, vitae efficitur
-# lacus justo nec purus. Aenean finibus faucibus lectus at porta. Maecenas auctor, est ut luctus congue, dui enim mattis enim, ac condimentum velit libero in magna. Suspendisse potenti. In tempus a nisi sed laoreet.
-# Suspendisse porta dui eget sem accumsan interdum. Ut quis urna pellentesque justo mattis ullamcorper ac non tellus. In tristique mauris eu velit fermentum, tempus pharetra est luctus. Vivamus consequat aliquam libero, eget bibendum lorem. Sed non dolor risus. Mauris condimentum auctor elementum. Donec quis nisi ligula. Integer vehicula tincidunt enim, ac lacinia augue pulvinar sit amet.
-def letting(request, letting_id):
- letting = Letting.objects.get(id=letting_id)
- context = {
- 'title': letting.title,
- 'address': letting.address,
- }
- return render(request, 'letting.html', context)
-
-# Sed placerat quam in pulvinar commodo. Nullam laoreet consectetur ex, sed consequat libero pulvinar eget. Fusc
-# faucibus, urna quis auctor pharetra, massa dolor cursus neque, quis dictum lacus d
-def profiles_index(request):
- profiles_list = Profile.objects.all()
- context = {'profiles_list': profiles_list}
- return render(request, 'profiles_index.html', context)
-
-# Aliquam sed metus eget nisi tincidunt ornare accumsan eget lac
-# laoreet neque quis, pellentesque dui. Nullam facilisis pharetra vulputate. Sed tincidunt, dolor id facilisis fringilla, eros leo tristique lacus,
-# it. Nam aliquam dignissim congue. Pellentesque habitant morbi tristique senectus et netus et males
-def profile(request, username):
- profile = Profile.objects.get(user__username=username)
- context = {'profile': profile}
- return render(request, 'profile.html', context)
diff --git a/profiles/__init__.py b/profiles/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/profiles/admin.py b/profiles/admin.py
new file mode 100644
index 0000000000..9f66e5c835
--- /dev/null
+++ b/profiles/admin.py
@@ -0,0 +1,6 @@
+from django.contrib import admin
+
+from profiles.models import Profile
+
+
+admin.site.register(Profile)
diff --git a/profiles/apps.py b/profiles/apps.py
new file mode 100644
index 0000000000..5501fdad35
--- /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 0000000000..069a3babcc
--- /dev/null
+++ b/profiles/migrations/0001_initial.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.0 on 2026-05-18 12:53
+
+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, related_name='new_profile', to=settings.AUTH_USER_MODEL)),
+ ],
+ ),
+ ]
diff --git a/profiles/migrations/0002_auto_20260518_1548.py b/profiles/migrations/0002_auto_20260518_1548.py
new file mode 100644
index 0000000000..7be66c52bf
--- /dev/null
+++ b/profiles/migrations/0002_auto_20260518_1548.py
@@ -0,0 +1,27 @@
+# Generated by Django 3.0 on 2026-05-18 13:48
+
+from django.db import migrations
+
+
+def copy_profile(apps, schema_editor):
+ OldProfile = apps.get_model('oc_lettings_site', 'Profile')
+ NewProfile = apps.get_model('profiles', 'Profile')
+
+ for obj in OldProfile.objects.all():
+ NewProfile.objects.create(
+ id=obj.id,
+ user=obj.user,
+ favorite_city=obj.favorite_city,
+ )
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('profiles', '0001_initial'),
+ ('oc_lettings_site', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.RunPython(copy_profile),
+ ]
diff --git a/profiles/migrations/0003_auto_20260518_1551.py b/profiles/migrations/0003_auto_20260518_1551.py
new file mode 100644
index 0000000000..61fbe40024
--- /dev/null
+++ b/profiles/migrations/0003_auto_20260518_1551.py
@@ -0,0 +1,21 @@
+# Generated by Django 3.0 on 2026-05-18 13:51
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('profiles', '0002_auto_20260518_1548'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='profile',
+ name='user',
+ field=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 0000000000..e69de29bb2
diff --git a/profiles/models.py b/profiles/models.py
new file mode 100644
index 0000000000..84c85c1001
--- /dev/null
+++ b/profiles/models.py
@@ -0,0 +1,10 @@
+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/templates/profiles_index.html b/profiles/templates/profiles/index.html
similarity index 88%
rename from templates/profiles_index.html
rename to profiles/templates/profiles/index.html
index 4ad1daf92f..563b7a0166 100644
--- a/templates/profiles_index.html
+++ b/profiles/templates/profiles/index.html
@@ -18,7 +18,7 @@
@@ -34,7 +34,7 @@
Home
-
+
Lettings
diff --git a/templates/profile.html b/profiles/templates/profiles/profile.html
similarity index 96%
rename from templates/profile.html
rename to profiles/templates/profiles/profile.html
index d150d30e63..4b1af37496 100644
--- a/templates/profile.html
+++ b/profiles/templates/profiles/profile.html
@@ -24,14 +24,14 @@
diff --git a/profiles/tests.py b/profiles/tests.py
new file mode 100644
index 0000000000..7ce503c2dd
--- /dev/null
+++ b/profiles/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/profiles/urls.py b/profiles/urls.py
new file mode 100644
index 0000000000..b33a49ae2d
--- /dev/null
+++ b/profiles/urls.py
@@ -0,0 +1,10 @@
+from django.urls import path
+
+from . import views
+
+app_name = 'profiles'
+
+urlpatterns = [
+ path('', views.index, name='index'),
+ path('
/', views.profile, name='profile'),
+]
diff --git a/profiles/views.py b/profiles/views.py
new file mode 100644
index 0000000000..13fb49857f
--- /dev/null
+++ b/profiles/views.py
@@ -0,0 +1,32 @@
+from django.shortcuts import render
+
+from profiles.models import Profile
+
+
+# Sed placerat quam in pulvinar commodo. Nullam laoreet consectetur ex, sed consequat libero
+# pulvinar eget. Fusc faucibus, urna quis auctor pharetra, massa dolor cursus neque, quis dictum
+# lacus d
+def index(request):
+ profiles_list = Profile.objects.all()
+ context = {'profiles_list': profiles_list}
+ return render(request, 'profiles/index.html', context)
+
+
+# Aliquam sed metus eget nisi tincidunt ornare accumsan eget lac
+# laoreet neque quis, pellentesque dui. Nullam facilisis pharetra vulputate. Sed tincidunt, dolor
+# id facilisis fringilla, eros leo tristique lacus, it. Nam aliquam dignissim congue. Pellentesque
+# habitant morbi tristique senectus et netus et males
+def profile(request, username):
+ try:
+ profile = Profile.objects.get(user__username=username)
+ context = {'profile': profile}
+
+ return render(request, 'profiles/profile.html', context)
+
+ except Profile.DoesNotExist:
+ context = {"type": "profile", "name": username}
+ return render(request, 'error_404.html', context=context)
+
+ except Exception as e:
+ context = {"error": e}
+ return render(request, 'error_500.html', context=context)
diff --git a/setup.cfg b/setup.cfg
index 9346841bbc..2c33038dd1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,8 @@
[flake8]
+format = html
+htmldir = flake8-report
max-line-length = 99
-exclude = **/migrations/*,venv
+exclude = **/migrations/*,env
[tool:pytest]
DJANGO_SETTINGS_MODULE = oc_lettings_site.settings
diff --git a/templates/base.html b/templates/base.html
index ab7addba01..403b342755 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -24,10 +24,10 @@
diff --git a/templates/error_404.html b/templates/error_404.html
new file mode 100644
index 0000000000..bc8477aadb
--- /dev/null
+++ b/templates/error_404.html
@@ -0,0 +1,30 @@
+{% extends "base.html" %}
+{% block title %}Holiday Homes{% endblock title %}
+
+{% block content %}
+
+
+
+
+
+ {% if type == "letting" %}
+
+ {% elif type == "profile" %}
+
+ {% endif %}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/error_500.html b/templates/error_500.html
new file mode 100644
index 0000000000..f7d65b087f
--- /dev/null
+++ b/templates/error_500.html
@@ -0,0 +1,26 @@
+{% extends "base.html" %}
+{% block title %}Holiday Homes{% endblock title %}
+
+{% block content %}
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/index.html b/templates/index.html
index 71a8e61a46..fc9a76c7ab 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -14,10 +14,10 @@