diff --git a/car_inventory/settings.py b/car_inventory/settings.py index 8d907648..709620a4 100644 --- a/car_inventory/settings.py +++ b/car_inventory/settings.py @@ -26,7 +26,7 @@ SECRET_KEY = 'django-insecure-gc9bh4*3=b6hihdnaom0edjsbxh$5t)aap@e8p&340r7)*)qb8 # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = ['10.10.1.109', 'localhost', '127.0.0.1', '192.168.1.135', '172.20.10.4'] +ALLOWED_HOSTS = ['10.10.1.109','10.10.1.120', 'localhost', '127.0.0.1', '192.168.1.135', '172.20.10.4'] # Application definition @@ -61,7 +61,6 @@ INSTALLED_APPS = [ 'django_ledger', 'djmoney', 'sslserver', - ] SITE_ID = 1 @@ -110,10 +109,10 @@ WSGI_APPLICATION = 'car_inventory.wsgi.application' DATABASES = { "default": { "ENGINE": "django_prometheus.db.backends.postgresql", - "NAME": "haikal_app", - "USER": "f95166", - "PASSWORD": "Kfsh&rc9788", - "HOST": "localhost", + "NAME": "haikal", + "USER": "haikal", + "PASSWORD": "haikal", + "HOST": "10.10.1.120", "PORT": 5432, } } diff --git a/inventory/migrations/0029_merge_20241217_1712.py b/inventory/migrations/0029_merge_20241217_1712.py new file mode 100644 index 00000000..92237cb0 --- /dev/null +++ b/inventory/migrations/0029_merge_20241217_1712.py @@ -0,0 +1,14 @@ +# Generated by Django 4.2.17 on 2024-12-17 14:12 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0023_cartrim_id_car_model'), + ('inventory', '0028_alter_dealer_options'), + ] + + operations = [ + ] diff --git a/inventory/migrations/0030_alter_carfinance_options_and_more.py b/inventory/migrations/0030_alter_carfinance_options_and_more.py new file mode 100644 index 00000000..e66cba04 --- /dev/null +++ b/inventory/migrations/0030_alter_carfinance_options_and_more.py @@ -0,0 +1,69 @@ +# Generated by Django 4.2.17 on 2024-12-17 14:17 + +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), + ('inventory', '0029_merge_20241217_1712'), + ] + + operations = [ + migrations.AlterModelOptions( + name='carfinance', + options={'verbose_name': 'Car Financial Details', 'verbose_name_plural': 'Car Financial Details'}, + ), + migrations.AlterModelOptions( + name='carreservation', + options={'ordering': ['-reserved_at'], 'verbose_name': 'Car Reservation', 'verbose_name_plural': 'Car Reservations'}, + ), + migrations.RemoveField( + model_name='carfinance', + name='vat_rate', + ), + migrations.AlterField( + model_name='carreservation', + name='car', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reservations', to='inventory.car', verbose_name='Car'), + ), + migrations.AlterField( + model_name='carreservation', + name='reserved_at', + field=models.DateTimeField(auto_now_add=True, verbose_name='Reserved At'), + ), + migrations.AlterField( + model_name='carreservation', + name='reserved_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reservations', to=settings.AUTH_USER_MODEL, verbose_name='Reserved By'), + ), + migrations.AlterField( + model_name='carreservation', + name='reserved_until', + field=models.DateTimeField(verbose_name='Reserved Until'), + ), + migrations.AlterField( + model_name='customcard', + name='car', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='custom_cards', to='inventory.car', verbose_name='Car'), + ), + migrations.CreateModel( + name='CarLocation', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('description', models.TextField(blank=True, help_text='Optional description about the showroom placement.', null=True, verbose_name='Description')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), + ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Last Updated')), + ('car', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='location', to='inventory.car', verbose_name='Car')), + ('owner', models.ForeignKey(help_text='Dealer who owns the car.', on_delete=django.db.models.deletion.CASCADE, related_name='owned_cars', to='inventory.dealer', verbose_name='Owner')), + ('showroom', models.ForeignKey(help_text='Dealer where the car is displayed (can be the owner).', on_delete=django.db.models.deletion.CASCADE, related_name='showroom_cars', to='inventory.dealer', verbose_name='Showroom')), + ], + options={ + 'verbose_name': 'Car Location', + 'verbose_name_plural': 'Car Locations', + }, + ), + ] diff --git a/inventory/views.py b/inventory/views.py index 7937d6f3..d27fe11d 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -547,10 +547,11 @@ class DealerUpdateView(LoginRequiredMixin,SuccessMessageMixin, UpdateView): def get_form(self, form_class=None): form = super().get_form(form_class) - form.fields.pop('dealer_type') + if hasattr(form.fields, 'dealer_type'): + form.fields.pop('dealer_type') return form def get_form_class(self): - if self.request.user.dealer.is_parent: + if self.request.user.dealer.dealer_type == 'Owner': return forms.DealerForm else: return forms.UserForm diff --git a/templates/inventory/car_inventory.html b/templates/inventory/car_inventory.html index 608dd226..5a3c6215 100644 --- a/templates/inventory/car_inventory.html +++ b/templates/inventory/car_inventory.html @@ -65,12 +65,12 @@ {% else %}