cleanup
This commit is contained in:
parent
febfb03b56
commit
0b2eb83bf6
@ -367,6 +367,18 @@ class CarSelectionTable(tables.Table):
|
|||||||
|
|
||||||
|
|
||||||
class WizardForm1(forms.Form):
|
class WizardForm1(forms.Form):
|
||||||
|
username = forms.CharField(
|
||||||
|
widget=forms.TextInput(
|
||||||
|
attrs={
|
||||||
|
"class": "form-control",
|
||||||
|
"placeholder": "Username",
|
||||||
|
"required": "required",
|
||||||
|
}
|
||||||
|
),
|
||||||
|
error_messages={
|
||||||
|
"required": _("You must add a username."),
|
||||||
|
},
|
||||||
|
)
|
||||||
email = forms.EmailField(
|
email = forms.EmailField(
|
||||||
widget=forms.EmailInput(
|
widget=forms.EmailInput(
|
||||||
attrs={
|
attrs={
|
||||||
|
|||||||
@ -64,20 +64,20 @@ def create_car_location(sender, instance, created, **kwargs):
|
|||||||
print(f"Failed to create CarLocation for car {instance.vin}: {e}")
|
print(f"Failed to create CarLocation for car {instance.vin}: {e}")
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=models.CarReservation)
|
# @receiver(post_save, sender=models.CarReservation)
|
||||||
def update_car_status_on_reservation(sender, instance, created, **kwargs):
|
# def update_car_status_on_reservation(sender, instance, created, **kwargs):
|
||||||
if created:
|
# if created:
|
||||||
car = instance.car
|
# car = instance.car
|
||||||
car.status = models.CarStatusChoices.RESERVED
|
# car.status = models.CarStatusChoices.RESERVED
|
||||||
car.save()
|
# car.save()
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=models.CarReservation)
|
# @receiver(post_delete, sender=models.CarReservation)
|
||||||
def update_car_status_on_reservation_delete(sender, instance, **kwargs):
|
# def update_car_status_on_reservation_delete(sender, instance, **kwargs):
|
||||||
car = instance.car
|
# car = instance.car
|
||||||
if not car.is_reserved():
|
# if not car.is_reserved():
|
||||||
car.status = models.CarStatusChoices.AVAILABLE
|
# car.status = models.CarStatusChoices.AVAILABLE
|
||||||
car.save()
|
# car.save()
|
||||||
|
|
||||||
|
|
||||||
# Create Entity
|
# Create Entity
|
||||||
@ -103,17 +103,18 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
print(f"Ledger entity created for Dealer: {instance.name}")
|
print(f"Ledger entity created for Dealer: {instance.name}")
|
||||||
|
|
||||||
# Create Cash Account
|
# Create Cash Account
|
||||||
entity.create_account(
|
asset_ca_cash = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="1101",
|
code="1010",
|
||||||
role=roles.ASSET_CA_CASH,
|
role=roles.ASSET_CA_CASH,
|
||||||
name=_("Cash"),
|
name=_("Cash"),
|
||||||
balance_type="debit",
|
balance_type="debit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_cash.role_default = True
|
||||||
|
asset_ca_cash.save()
|
||||||
# Create Accounts Receivable Account
|
# Create Accounts Receivable Account
|
||||||
entity.create_account(
|
asset_ca_receivables = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="1102",
|
code="1102",
|
||||||
role=roles.ASSET_CA_RECEIVABLES,
|
role=roles.ASSET_CA_RECEIVABLES,
|
||||||
@ -121,9 +122,11 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="debit",
|
balance_type="debit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_receivables.role_default = True
|
||||||
|
asset_ca_receivables.save()
|
||||||
|
|
||||||
# Create Inventory Account
|
# Create Inventory Account
|
||||||
entity.create_account(
|
asset_ca_inventory = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="1103",
|
code="1103",
|
||||||
role=roles.ASSET_CA_INVENTORY,
|
role=roles.ASSET_CA_INVENTORY,
|
||||||
@ -132,8 +135,10 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
asset_ca_inventory.role_default = True
|
||||||
|
asset_ca_inventory.save()
|
||||||
# Create Accounts Payable Account
|
# Create Accounts Payable Account
|
||||||
entity.create_account(
|
asset_ca_accounts_payable = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="2101",
|
code="2101",
|
||||||
role=roles.LIABILITY_CL_ACC_PAYABLE,
|
role=roles.LIABILITY_CL_ACC_PAYABLE,
|
||||||
@ -141,8 +146,10 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="credit",
|
balance_type="credit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_accounts_payable.role_default = True
|
||||||
|
asset_ca_accounts_payable.save()
|
||||||
# Create Equity Account
|
# Create Equity Account
|
||||||
entity.create_account(
|
asset_ca_equity = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="3101",
|
code="3101",
|
||||||
role=roles.EQUITY_CAPITAL,
|
role=roles.EQUITY_CAPITAL,
|
||||||
@ -150,9 +157,11 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="credit",
|
balance_type="credit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_equity.role_default = True
|
||||||
|
asset_ca_equity.save()
|
||||||
|
|
||||||
# Create Sales Revenue Account
|
# Create Sales Revenue Account
|
||||||
entity.create_account(
|
asset_ca_revenue = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="4101",
|
code="4101",
|
||||||
role=roles.INCOME_OPERATIONAL,
|
role=roles.INCOME_OPERATIONAL,
|
||||||
@ -160,9 +169,11 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="credit",
|
balance_type="credit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_revenue.role_default = True
|
||||||
|
asset_ca_revenue.save()
|
||||||
|
|
||||||
# Create Cost of Goods Sold Account
|
# Create Cost of Goods Sold Account
|
||||||
entity.create_account(
|
asset_ca_cogs = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="5101",
|
code="5101",
|
||||||
role=roles.COGS,
|
role=roles.COGS,
|
||||||
@ -170,9 +181,11 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="debit",
|
balance_type="debit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
asset_ca_cogs.role_default = True
|
||||||
|
asset_ca_cogs.save()
|
||||||
|
|
||||||
# Create Rent Expense Account
|
# Create Rent Expense Account
|
||||||
entity.create_account(
|
expense = entity.create_account(
|
||||||
coa_model=coa,
|
coa_model=coa,
|
||||||
code="6101",
|
code="6101",
|
||||||
role=roles.EXPENSE_OPERATIONAL,
|
role=roles.EXPENSE_OPERATIONAL,
|
||||||
@ -180,6 +193,8 @@ def create_ledger_entity(sender, instance, created, **kwargs):
|
|||||||
balance_type="debit",
|
balance_type="debit",
|
||||||
active=True,
|
active=True,
|
||||||
)
|
)
|
||||||
|
expense.role_default = True
|
||||||
|
expense.save()
|
||||||
|
|
||||||
# Create Utilities Expense Account
|
# Create Utilities Expense Account
|
||||||
entity.create_account(
|
entity.create_account(
|
||||||
@ -257,11 +272,12 @@ def create_item_model(sender, instance, created, **kwargs):
|
|||||||
# print(f"UOM created: {uom_name}")
|
# print(f"UOM created: {uom_name}")
|
||||||
# else:
|
# else:
|
||||||
# print(f"Using existing UOM: {uom_name}")
|
# print(f"Using existing UOM: {uom_name}")
|
||||||
|
name = instance.dealer.name
|
||||||
entity = EntityModel.objects.first()
|
entity = EntityModel.objects.filter(name=name).first()
|
||||||
uom = entity.get_uom_all().first()
|
uom = entity.get_uom_all().first()
|
||||||
coa = entity.get_default_coa()
|
coa = entity.get_default_coa()
|
||||||
|
|
||||||
|
entity.get_items_all().filter(item_id=instance.vin)
|
||||||
entity.create_item_product(
|
entity.create_item_product(
|
||||||
name=f"{instance.vin}",
|
name=f"{instance.vin}",
|
||||||
item_type=ItemModel.ITEM_TYPE_OTHER,
|
item_type=ItemModel.ITEM_TYPE_OTHER,
|
||||||
|
|||||||
@ -70,6 +70,8 @@ from .utils import get_calculations, send_email, get_user_type
|
|||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from allauth.account import views
|
from allauth.account import views
|
||||||
from django.db.models import Count, F, Value
|
from django.db.models import Count, F, Value
|
||||||
|
from django.contrib.auth import authenticate
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
@ -117,6 +119,7 @@ def dealer_signup(request, *args, **kwargs):
|
|||||||
wf1 = data.get("wizardValidationForm1")
|
wf1 = data.get("wizardValidationForm1")
|
||||||
wf2 = data.get("wizardValidationForm2")
|
wf2 = data.get("wizardValidationForm2")
|
||||||
wf3 = data.get("wizardValidationForm3")
|
wf3 = data.get("wizardValidationForm3")
|
||||||
|
username = wf1.get("username")
|
||||||
email = wf1.get("email")
|
email = wf1.get("email")
|
||||||
password = wf1.get("password")
|
password = wf1.get("password")
|
||||||
password_confirm = wf1.get("confirm_password")
|
password_confirm = wf1.get("confirm_password")
|
||||||
@ -132,7 +135,9 @@ def dealer_signup(request, *args, **kwargs):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
user = User.objects.create(email=email, password=password)
|
user = User.objects.create(username=username, email=email)
|
||||||
|
user.set_password(password)
|
||||||
|
user.save()
|
||||||
|
|
||||||
models.Dealer.objects.create(
|
models.Dealer.objects.create(
|
||||||
user=user,
|
user=user,
|
||||||
@ -143,7 +148,12 @@ def dealer_signup(request, *args, **kwargs):
|
|||||||
phone_number=phone,
|
phone_number=phone,
|
||||||
address=address,
|
address=address,
|
||||||
)
|
)
|
||||||
return JsonResponse({"message": "User created successfully."}, status=200)
|
user = authenticate(request, username=username, password=password)
|
||||||
|
if user is not None:
|
||||||
|
return JsonResponse({"message": "User created successfully."}, status=200)
|
||||||
|
else:
|
||||||
|
return JsonResponse({"error": "User creation failed."}, status=400)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return JsonResponse({"error": str(e)}, status=400)
|
return JsonResponse({"error": str(e)}, status=400)
|
||||||
|
|
||||||
@ -475,7 +485,7 @@ def inventory_stats_view(request):
|
|||||||
]["total_cars"] += 1
|
]["total_cars"] += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
result = {
|
result = {
|
||||||
"total_cars": cars.count(),
|
"total_cars": cars.count(),
|
||||||
"makes": [
|
"makes": [
|
||||||
{
|
{
|
||||||
@ -653,7 +663,10 @@ def manage_reservation(request, reservation_id):
|
|||||||
return redirect("car_detail", pk=reservation.car.pk)
|
return redirect("car_detail", pk=reservation.car.pk)
|
||||||
|
|
||||||
elif action == "cancel":
|
elif action == "cancel":
|
||||||
|
car = reservation.car
|
||||||
reservation.delete()
|
reservation.delete()
|
||||||
|
car.status = models.CarStatusChoices.AVAILABLE
|
||||||
|
car.save()
|
||||||
messages.success(request, _("Reservation canceled successfully."))
|
messages.success(request, _("Reservation canceled successfully."))
|
||||||
return redirect("car_detail", pk=reservation.car.pk)
|
return redirect("car_detail", pk=reservation.car.pk)
|
||||||
|
|
||||||
@ -1685,6 +1698,9 @@ class EstimateListView(LoginRequiredMixin, ListView):
|
|||||||
template_name = "sales/estimates/estimate_list.html"
|
template_name = "sales/estimates/estimate_list.html"
|
||||||
context_object_name = "estimates"
|
context_object_name = "estimates"
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
entity = self.request.user.dealer.entity
|
||||||
|
return entity.get_estimates()
|
||||||
|
|
||||||
# class EstimateCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
|
# class EstimateCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
|
||||||
# model = EstimateModel
|
# model = EstimateModel
|
||||||
@ -1810,9 +1826,10 @@ def create_estimate(request):
|
|||||||
)
|
)
|
||||||
|
|
||||||
form = EstimateModelCreateForm(entity_slug=entity.slug, user_model=entity.admin)
|
form = EstimateModelCreateForm(entity_slug=entity.slug, user_model=entity.admin)
|
||||||
|
car_list = models.Car.objects.filter(dealer=dealer,finances__selling_price__gt=0).exclude(status='reserved').values_list("vin", flat=True)
|
||||||
context = {
|
context = {
|
||||||
"form": form,
|
"form": form,
|
||||||
"items": entity.get_items_all().filter(item_role=ItemModel.ITEM_ROLE_PRODUCT),
|
"items": entity.get_items_all().filter(item_role=ItemModel.ITEM_ROLE_PRODUCT,name__in=[car_list]),
|
||||||
}
|
}
|
||||||
return render(request, "sales/estimates/estimate_form.html", context)
|
return render(request, "sales/estimates/estimate_form.html", context)
|
||||||
|
|
||||||
|
|||||||
BIN
static/images/logos/users/tenhal_hero.png
Normal file
BIN
static/images/logos/users/tenhal_hero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 MiB |
@ -117,6 +117,9 @@ const url = "{% url 'account_signup' %}";
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
notify("success","Account created successfully");
|
notify("success","Account created successfully");
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.href = "{% url 'account_login' %}";
|
||||||
|
}, 1000);
|
||||||
} else {
|
} else {
|
||||||
notify("error",data.error);
|
notify("error",data.error);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -212,6 +212,7 @@
|
|||||||
<label for="{{ form.receiving_date.id_for_label }}" class="form-label">
|
<label for="{{ form.receiving_date.id_for_label }}" class="form-label">
|
||||||
{% trans 'Receiving Date' %}:
|
{% trans 'Receiving Date' %}:
|
||||||
</label>
|
</label>
|
||||||
|
{{ form.receiving_date }}
|
||||||
<input
|
<input
|
||||||
class="form-control form-control-sm datetimepicker flatpickr-input"
|
class="form-control form-control-sm datetimepicker flatpickr-input"
|
||||||
id="{{ form.receiving_date.id_for_label }}"
|
id="{{ form.receiving_date.id_for_label }}"
|
||||||
|
|||||||
@ -29,7 +29,9 @@
|
|||||||
<div class="row align-items-center g-3 g-sm-5 text-start text-sm-start">
|
<div class="row align-items-center g-3 g-sm-5 text-start text-sm-start">
|
||||||
<div class="col-12 col-sm-auto ">
|
<div class="col-12 col-sm-auto ">
|
||||||
<div class="avatar avatar-3xl avatar-bordered mb-3">
|
<div class="avatar avatar-3xl avatar-bordered mb-3">
|
||||||
<img class="rounded-circle" src="{{ cars.first.id_car_make.logo.url }}" alt="">
|
{% if cars.first.id_car_make.logo %}
|
||||||
|
<img class="rounded-circle" src="{{ cars.first.id_car_make.logo.url }}" alt="">
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-sm-auto flex-1">
|
<div class="col-12 col-sm-auto flex-1">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user