diff --git a/inventory/forms.py b/inventory/forms.py index 63fbfb81..bc9b43ac 100644 --- a/inventory/forms.py +++ b/inventory/forms.py @@ -22,7 +22,7 @@ from django_ledger.forms.estimate import ( ) from django_ledger.forms.bill import BillModelCreateForm as BillModelCreateFormBase -from django_ledger.forms.vendor import VendorModelForm + from .models import ( Dealer, # Branch, @@ -39,26 +39,24 @@ from .models import ( InteriorColors, # SaleQuotation, CarLocation, - Organization, + Representative, - Payment, + # SaleQuotationCar, AdditionalServices, Staff, Opportunity, - Priority, - Sources, + Lead, Activity, Notes, CarModel, SaleOrder, CarMake, + DealerSettings ) from django_ledger import models as ledger_models -from django.forms import ( - ModelMultipleChoiceField, - ValidationError, +from django.forms import ( DateInput, DateTimeInput, ) @@ -465,7 +463,7 @@ class WizardForm1(forms.Form): "placeholder": _("Email address"), "name": _("email"), "required": "required", - **hx_attrs + # **hx_attrs } ), error_messages={ @@ -480,7 +478,7 @@ class WizardForm1(forms.Form): "class": "form-control form-control-sm", "placeholder": _("Password"), "required": "required", - **hx_attrs + # **hx_attrs }, render_value=True ), @@ -497,7 +495,7 @@ class WizardForm1(forms.Form): "class": "form-control form-control-sm", "placeholder": _("Confirm Password"), "required": "required", - **hx_attrs + # **hx_attrs }, render_value=True ), @@ -513,7 +511,7 @@ class WizardForm1(forms.Form): attrs={ "class": "form-check-input", "required": "required", - **hx_attrs + # **hx_attrs } ), error_messages={ @@ -789,10 +787,10 @@ class OpportunityForm(forms.ModelForm): class InvoiceModelCreateForm(InvoiceModelCreateFormBase): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - - # self.fields["cash_account"].widget = forms.HiddenInput() - # self.fields["prepaid_account"].widget = forms.HiddenInput() - # self.fields["unearned_account"].widget = forms.HiddenInput() + + self.fields["cash_account"].widget = forms.HiddenInput() + self.fields["prepaid_account"].widget = forms.HiddenInput() + self.fields["unearned_account"].widget = forms.HiddenInput() self.fields["date_draft"] = forms.DateField( widget=DateInput(attrs={"type": "date"}) ) @@ -807,13 +805,13 @@ class InvoiceModelCreateForm(InvoiceModelCreateFormBase): class BillModelCreateForm(BillModelCreateFormBase): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - + self.fields["cash_account"].widget = forms.HiddenInput() self.fields["prepaid_account"].widget = forms.HiddenInput() self.fields["unearned_account"].widget = forms.HiddenInput() - self.fields["date_draft"] = forms.DateField( - widget=DateInput(attrs={"type": "date"}) - ) + # self.fields["date_draft"] = forms.DateField( + # widget=DateInput(attrs={"type": "date"}) + # ) class SaleOrderForm(forms.ModelForm): @@ -926,4 +924,10 @@ class UserGroupForm(forms.ModelForm): ) class Meta: model = CustomGroup - fields = ["name"] \ No newline at end of file + fields = ["name"] + +class DealerSettingsForm(forms.ModelForm): + class Meta: + model = DealerSettings + fields = "__all__" + \ No newline at end of file diff --git a/inventory/migrations/0040_usersettings.py b/inventory/migrations/0040_usersettings.py new file mode 100644 index 00000000..84c925d9 --- /dev/null +++ b/inventory/migrations/0040_usersettings.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.17 on 2025-02-23 14:31 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('inventory', '0039_alter_customgroup_dealer'), + ] + + operations = [ + migrations.CreateModel( + name='UserSettings', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('language', models.CharField(choices=[('en', 'English'), ('ar', 'Arabic')], default='ar', max_length=20)), + ('theme', models.CharField(choices=[('default', 'Default'), ('dark', 'Dark')], default='default', max_length=20)), + ('additional_info', models.JSONField(default=dict)), + ('bill_cash_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_ca', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('bill_payable_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_payable', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('bill_prepaid_expense_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_prepaid_expense', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('invoice_cash_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_ca', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('invoice_payable_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_payable', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('invoice_prepaid_expense_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_prepaid_expense', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/inventory/migrations/0041_alter_usersettings_additional_info.py b/inventory/migrations/0041_alter_usersettings_additional_info.py new file mode 100644 index 00000000..e2dd6996 --- /dev/null +++ b/inventory/migrations/0041_alter_usersettings_additional_info.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.17 on 2025-02-23 14:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0040_usersettings'), + ] + + operations = [ + migrations.AlterField( + model_name='usersettings', + name='additional_info', + field=models.JSONField(blank=True, default=dict, null=True), + ), + ] diff --git a/inventory/migrations/0042_alter_usersettings_user.py b/inventory/migrations/0042_alter_usersettings_user.py new file mode 100644 index 00000000..394cfedf --- /dev/null +++ b/inventory/migrations/0042_alter_usersettings_user.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.17 on 2025-02-23 15:34 + +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', '0041_alter_usersettings_additional_info'), + ] + + operations = [ + migrations.AlterField( + model_name='usersettings', + name='user', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='settings', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/inventory/migrations/0043_alter_usersettings_user.py b/inventory/migrations/0043_alter_usersettings_user.py new file mode 100644 index 00000000..2417cec3 --- /dev/null +++ b/inventory/migrations/0043_alter_usersettings_user.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.17 on 2025-02-23 16:23 + +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', '0042_alter_usersettings_user'), + ] + + operations = [ + migrations.AlterField( + model_name='usersettings', + name='user', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='settings', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/inventory/migrations/0044_dealersettings_delete_usersettings.py b/inventory/migrations/0044_dealersettings_delete_usersettings.py new file mode 100644 index 00000000..db9c550b --- /dev/null +++ b/inventory/migrations/0044_dealersettings_delete_usersettings.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.17 on 2025-02-23 16:31 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + ('inventory', '0043_alter_usersettings_user'), + ] + + operations = [ + migrations.CreateModel( + name='DealerSettings', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('additional_info', models.JSONField(blank=True, default=dict, null=True)), + ('bill_cash_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_ca', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('bill_payable_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_payable', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('bill_prepaid_expense_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_prepaid_expense', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('dealer', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='settings', to='inventory.dealer')), + ('invoice_cash_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_ca', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('invoice_payable_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_payable', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ('invoice_prepaid_expense_account', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_prepaid_expense', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL)), + ], + ), + migrations.DeleteModel( + name='UserSettings', + ), + ] diff --git a/inventory/migrations/0045_remove_dealersettings_invoice_payable_account_and_more.py b/inventory/migrations/0045_remove_dealersettings_invoice_payable_account_and_more.py new file mode 100644 index 00000000..c1371ad8 --- /dev/null +++ b/inventory/migrations/0045_remove_dealersettings_invoice_payable_account_and_more.py @@ -0,0 +1,39 @@ +# Generated by Django 4.2.17 on 2025-02-24 09:01 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + ('inventory', '0044_dealersettings_delete_usersettings'), + ] + + operations = [ + migrations.RemoveField( + model_name='dealersettings', + name='invoice_payable_account', + ), + migrations.RemoveField( + model_name='dealersettings', + name='invoice_prepaid_expense_account', + ), + migrations.AddField( + model_name='dealersettings', + name='invoice_prepaid_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_prepaid', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + migrations.AddField( + model_name='dealersettings', + name='invoice_unearned_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_unearned', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + migrations.AlterField( + model_name='dealersettings', + name='invoice_cash_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_cash', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + ] diff --git a/inventory/migrations/0046_remove_dealersettings_invoice_prepaid_account_and_more.py b/inventory/migrations/0046_remove_dealersettings_invoice_prepaid_account_and_more.py new file mode 100644 index 00000000..34720538 --- /dev/null +++ b/inventory/migrations/0046_remove_dealersettings_invoice_prepaid_account_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.17 on 2025-02-24 09:10 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + ('inventory', '0045_remove_dealersettings_invoice_payable_account_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='dealersettings', + name='invoice_prepaid_account', + ), + migrations.AddField( + model_name='dealersettings', + name='invoice_recivable_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_recivable', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + ] diff --git a/inventory/migrations/0047_remove_dealersettings_invoice_recivable_account_and_more.py b/inventory/migrations/0047_remove_dealersettings_invoice_recivable_account_and_more.py new file mode 100644 index 00000000..1d85b218 --- /dev/null +++ b/inventory/migrations/0047_remove_dealersettings_invoice_recivable_account_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.17 on 2025-02-24 09:11 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + ('inventory', '0046_remove_dealersettings_invoice_prepaid_account_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='dealersettings', + name='invoice_recivable_account', + ), + migrations.AddField( + model_name='dealersettings', + name='invoice_prepaid_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='invoice_prepaid', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + ] diff --git a/inventory/migrations/0048_remove_dealersettings_bill_payable_account_and_more.py b/inventory/migrations/0048_remove_dealersettings_bill_payable_account_and_more.py new file mode 100644 index 00000000..8ec7bf14 --- /dev/null +++ b/inventory/migrations/0048_remove_dealersettings_bill_payable_account_and_more.py @@ -0,0 +1,39 @@ +# Generated by Django 4.2.17 on 2025-02-24 09:14 + +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.DJANGO_LEDGER_ACCOUNT_MODEL), + ('inventory', '0047_remove_dealersettings_invoice_recivable_account_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='dealersettings', + name='bill_payable_account', + ), + migrations.RemoveField( + model_name='dealersettings', + name='bill_prepaid_expense_account', + ), + migrations.AddField( + model_name='dealersettings', + name='bill_prepaid_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_prepaid', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + migrations.AddField( + model_name='dealersettings', + name='bill_unearned_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_unearned', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + migrations.AlterField( + model_name='dealersettings', + name='bill_cash_account', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bill_cash', to=settings.DJANGO_LEDGER_ACCOUNT_MODEL), + ), + ] diff --git a/inventory/models.py b/inventory/models.py index f8dce121..b12a8fe8 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -16,7 +16,7 @@ from django.core.exceptions import ValidationError from phonenumber_field.modelfields import PhoneNumberField from django.utils.timezone import now from .mixins import LocalizedNameMixin -from django_ledger.models import EntityModel, ItemModel,EstimateModel,InvoiceModel +from django_ledger.models import EntityModel, ItemModel,EstimateModel,InvoiceModel,AccountModel from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from appointment.models import StaffMember @@ -1852,4 +1852,20 @@ class CustomGroup(models.Model): Permission.objects.get(codename=perm) self.add_permission(perm) except Exception as e: - pass \ No newline at end of file + pass + + + +class DealerSettings(models.Model): + dealer = models.OneToOneField(Dealer, on_delete=models.CASCADE, related_name="settings",null=True, blank=True) + invoice_cash_account = models.ForeignKey(AccountModel,related_name="invoice_cash", on_delete=models.SET_NULL, null=True, blank=True) + invoice_prepaid_account = models.ForeignKey(AccountModel,related_name="invoice_prepaid", on_delete=models.SET_NULL, null=True, blank=True) + invoice_unearned_account = models.ForeignKey(AccountModel,related_name="invoice_unearned", on_delete=models.SET_NULL, null=True, blank=True) + + bill_cash_account = models.ForeignKey(AccountModel,related_name="bill_cash", on_delete=models.SET_NULL, null=True, blank=True) + bill_prepaid_account = models.ForeignKey(AccountModel,related_name="bill_prepaid", on_delete=models.SET_NULL, null=True, blank=True) + bill_unearned_account = models.ForeignKey(AccountModel,related_name="bill_unearned", on_delete=models.SET_NULL, null=True, blank=True) + additional_info = models.JSONField(default=dict,null=True,blank=True) + + def __str__(self): + return f"Settings for {self.dealer}" \ No newline at end of file diff --git a/inventory/signals.py b/inventory/signals.py index efc0db2a..6b9caa72 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -82,6 +82,11 @@ def create_car_location(sender, instance, created, **kwargs): except Exception as e: print(f"Failed to create CarLocation for car {instance.vin}: {e}") +@receiver(post_save, sender=models.Dealer) +def create_dealer_settings(sender, instance, created, **kwargs): + if created: + models.DealerSettings.objects.create(dealer=instance) + # Create Entity @receiver(post_save, sender=models.Dealer) def create_ledger_entity(sender, instance, created, **kwargs): diff --git a/inventory/urls.py b/inventory/urls.py index aaf1c9f2..0f0a7818 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -43,6 +43,8 @@ urlpatterns = [ # ), # ), # Dashboards + # path("user//settings/", views.UserSettingsView.as_view(), name="user_settings"), + path("dealer//settings/", views.DealerSettingsView, name="dealer_settings"), path("dashboards/manager/", views.ManagerDashboard.as_view(), name="manager_dashboard"), path("test/", views.TestView.as_view(), name="test"), path('cars/inventory/table/', views.CarListViewTable.as_view(), name="car_table"), diff --git a/inventory/views.py b/inventory/views.py index 6ec35498..1402e7e3 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -1,3 +1,4 @@ +from django.views.generic.edit import FormView from django.db.models import Func from django.contrib.auth.models import Permission from appointment.models import Appointment,AppointmentRequest,Service,StaffMember @@ -74,7 +75,7 @@ from django.contrib import messages from django.db.models import Sum, F, Count from django.db import transaction from shapely.speedups import available - +from django_ledger.io import roles from .services import ( decodevin, get_make, @@ -194,7 +195,7 @@ def dealer_signup(request, *args, **kwargs): data = json.loads(request.body) wf1 = data.get("wizardValidationForm1") wf2 = data.get("wizardValidationForm2") - wf3 = data.get("wizardValidationForm3") + wf3 = data.get("wizardValidationForm3") email = wf1.get("email") password = wf1.get("password") password_confirm = wf1.get("confirm_password") @@ -3179,13 +3180,9 @@ def invoice_create(request, pk): form.initial.update( { "customer": estimate.customer, - "cash_account": entity.get_default_coa_accounts().get(name="Cash"), - "prepaid_account": entity.get_default_coa_accounts().get( - name="Accounts Receivable" - ), - "unearned_account": entity.get_default_coa_accounts().get( - name="Deferred Revenue" - ), + "cash_account": dealer.settings.invoice_cash_account, + "prepaid_account": dealer.settings.invoice_prepaid_account, + "unearned_account": dealer.settings.invoice_unearned_account, } ) @@ -4149,13 +4146,9 @@ def bill_create(request): form = forms.BillModelCreateForm(entity_model=entity) form.initial.update( { - "cash_account": entity.get_default_coa_accounts().get(name="Cash"), - "prepaid_account": entity.get_default_coa_accounts().get( - name="Prepaid Expenses" - ), - "unearned_account": entity.get_default_coa_accounts().get( - name="Accounts Payable" - ), + "cash_account": dealer.settings.bill_cash_account, + "prepaid_account": dealer.settings.bill_prepaid_account, + "unearned_account": dealer.settings.bill_unearned_account } ) car_list = models.Car.objects.filter(dealer=dealer) @@ -4598,3 +4591,44 @@ class CarListViewTable(ExportMixin, LoginRequiredMixin, SingleTableView): "finances", "colors__exterior", "colors__interior" ).filter(dealer=dealer) + +# class UserSettingsView(LoginRequiredMixin, SuccessMessageMixin, UpdateView): +# template_name = 'account/user_settings.html' +# form_class = forms.UserSettingsForm +# model = models.UserSettings +# success_message = 'User settings updated' + +# def get_object(self, queryset=None): +# return models.UserSettings.objects.get(user=self.request.user) + +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# context['form'] = self.form_class(instance=self.get_object()) +# return context + +# def form_valid(self, form): +# form.instance.user = self.request.user +# return super().form_valid(form) + +def DealerSettingsView(request,pk): + dealer_setting = get_object_or_404(models.DealerSettings, pk=pk) + dealer = get_user_type(request) + if request.method == 'POST': + form = forms.DealerSettingsForm(request.POST, instance=dealer_setting) + if form.is_valid(): + instance = form.save(commit=False) + instance.dealer = dealer + instance.save() + messages.success(request, 'ssettings updated') + return redirect('dealer_settings', pk=dealer.pk) + else: + print(form.errors) + form = forms.DealerSettingsForm(instance=dealer_setting,initial={'dealer':dealer}) + form.fields['invoice_cash_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.ASSET_CA_CASH) + form.fields['invoice_prepaid_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.ASSET_CA_RECEIVABLES) + form.fields['invoice_unearned_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.LIABILITY_CL_DEFERRED_REVENUE) + + form.fields['bill_cash_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.ASSET_CA_CASH) + form.fields['bill_prepaid_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.ASSET_CA_PREPAID) + form.fields['bill_unearned_account'].queryset = dealer.entity.get_all_accounts().filter(role=roles.LIABILITY_CL_ACC_PAYABLE) + return render(request, 'account/user_settings.html', {'form': form}) \ No newline at end of file diff --git a/templates/account/signup-wizard.html b/templates/account/signup-wizard.html index 8b6f322c..2adae611 100644 --- a/templates/account/signup-wizard.html +++ b/templates/account/signup-wizard.html @@ -38,7 +38,7 @@
- {{form1|crispy}} + {{form1|crispy}}
@@ -70,7 +70,7 @@
- +
@@ -83,7 +83,113 @@ {% endblock content %} {% block customJS %} + - +