fix the additional_finances issue
This commit is contained in:
parent
14680585b9
commit
8d82a954e8
@ -440,14 +440,14 @@ class CarFinanceForm(forms.ModelForm):
|
|||||||
model = CarFinance
|
model = CarFinance
|
||||||
fields = ["cost_price","marked_price"]
|
fields = ["cost_price","marked_price"]
|
||||||
|
|
||||||
def save(self, commit=True):
|
# def save(self, commit=True):
|
||||||
instance = super().save()
|
# instance = super().save()
|
||||||
try:
|
# try:
|
||||||
instance.additional_services.set(self.cleaned_data["additional_finances"])
|
# instance.additional_services.set(self.cleaned_data["additional_finances"])
|
||||||
except KeyError:
|
# except KeyError:
|
||||||
pass
|
# pass
|
||||||
instance.save()
|
# instance.save()
|
||||||
return instance
|
# return instance
|
||||||
|
|
||||||
|
|
||||||
class CarLocationForm(forms.ModelForm):
|
class CarLocationForm(forms.ModelForm):
|
||||||
|
|||||||
@ -370,8 +370,8 @@ def update_item_model_cost(sender, instance, created, **kwargs):
|
|||||||
)
|
)
|
||||||
|
|
||||||
instance.car.item_model.default_amount = instance.marked_price
|
instance.car.item_model.default_amount = instance.marked_price
|
||||||
if not isinstance(instance.car.item_model.additional_info, dict):
|
# if not isinstance(instance.car.item_model.additional_info, dict):
|
||||||
instance.car.item_model.additional_info = {}
|
# instance.car.item_model.additional_info = {}
|
||||||
# instance.car.item_model.additional_info.update({"car_finance": instance.to_dict()})
|
# instance.car.item_model.additional_info.update({"car_finance": instance.to_dict()})
|
||||||
# instance.car.item_model.additional_info.update(
|
# instance.car.item_model.additional_info.update(
|
||||||
# {
|
# {
|
||||||
|
|||||||
@ -6989,8 +6989,12 @@ class OpportunityListView(LoginRequiredMixin, PermissionRequiredMixin, ListView)
|
|||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
dealer = get_user_type(self.request)
|
dealer = get_user_type(self.request)
|
||||||
staff = getattr(self.request.user.staffmember, "staff", None)
|
|
||||||
queryset = models.Opportunity.objects.filter(dealer=dealer, lead__staff=staff)
|
if self.request.is_dealer:
|
||||||
|
queryset = models.Opportunity.objects.filter(dealer=dealer)
|
||||||
|
elif self.request.is_staff:
|
||||||
|
staff = self.request.staff
|
||||||
|
queryset = models.Opportunity.objects.filter(dealer=dealer, lead__staff=staff)
|
||||||
|
|
||||||
# Search filter
|
# Search filter
|
||||||
search = self.request.GET.get("q")
|
search = self.request.GET.get("q")
|
||||||
|
|||||||
@ -23,8 +23,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form action="{% url 'add_task' request.dealer.slug content_type slug %}"
|
<form action="{% url 'add_task' request.dealer.slug content_type slug %}"
|
||||||
hx-select=".taskTable"
|
hx-boost="true"
|
||||||
hx-target=".taskTable"
|
hx-select-oob=".taskTable:outerHTML,#toast-container:outerHTML"
|
||||||
|
hx-swap="none"
|
||||||
hx-on::after-request="{
|
hx-on::after-request="{
|
||||||
resetSubmitButton(document.querySelector('.add_task_form button[type=submit]'));
|
resetSubmitButton(document.querySelector('.add_task_form button[type=submit]'));
|
||||||
$('#taskModal').modal('hide');
|
$('#taskModal').modal('hide');
|
||||||
|
|||||||
@ -838,9 +838,9 @@
|
|||||||
{% include "components/note_modal.html" with content_type="lead" slug=lead.slug %}
|
{% include "components/note_modal.html" with content_type="lead" slug=lead.slug %}
|
||||||
<!-- schedule Modal -->
|
<!-- schedule Modal -->
|
||||||
{% include "components/schedule_modal.html" with content_type="lead" slug=lead.slug %}
|
{% include "components/schedule_modal.html" with content_type="lead" slug=lead.slug %}
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
{% block customJS %}
|
{% block customJS %}
|
||||||
<script>
|
<script>
|
||||||
function reset_form() {
|
function reset_form() {
|
||||||
document.querySelector('#id_note').value = ""
|
document.querySelector('#id_note').value = ""
|
||||||
let form = document.querySelector('.add_note_form')
|
let form = document.querySelector('.add_note_form')
|
||||||
|
|||||||
@ -578,7 +578,7 @@
|
|||||||
style="min-width:165px">Completed</th>
|
style="min-width:165px">Completed</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="list" id="all-tasks-table-body">
|
<tbody class="list taskTable" id="all-tasks-table-body">
|
||||||
{% for task in schedules %}
|
{% for task in schedules %}
|
||||||
{% include "partials/task.html" %}
|
{% include "partials/task.html" %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -639,7 +639,7 @@
|
|||||||
<th class="align-middle pe-0 text-end" scope="col" style="width:10%;"></th>
|
<th class="align-middle pe-0 text-end" scope="col" style="width:10%;"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody id="notesTable">
|
||||||
{% for note in opportunity.get_notes %}
|
{% for note in opportunity.get_notes %}
|
||||||
<tr class="hover-actions-trigger btn-reveal-trigger position-static">
|
<tr class="hover-actions-trigger btn-reveal-trigger position-static">
|
||||||
<td class="align-middle text-start fw-bold text-body-tertiary ps-1">{{ note.note }}</td>
|
<td class="align-middle text-start fw-bold text-body-tertiary ps-1">{{ note.note }}</td>
|
||||||
@ -1100,3 +1100,28 @@
|
|||||||
<!-- schedule Modal -->
|
<!-- schedule Modal -->
|
||||||
{% include "components/schedule_modal.html" with content_type="opportunity" slug=opportunity.slug %}
|
{% include "components/schedule_modal.html" with content_type="opportunity" slug=opportunity.slug %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block customJS %}
|
||||||
|
<script>
|
||||||
|
|
||||||
|
document.body.addEventListener('htmx:afterSwap', function(evt) {
|
||||||
|
if (evt.detail.target.id === 'main_content') {
|
||||||
|
var modal = bootstrap.Modal.getInstance(document.getElementById('exampleModal'));
|
||||||
|
if (modal) {
|
||||||
|
modal.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Cleanup modal backdrop if needed
|
||||||
|
document.body.addEventListener('htmx:beforeSwap', function(evt) {
|
||||||
|
if (evt.detail.target.id === 'main_content') {
|
||||||
|
var backdrops = document.querySelectorAll('.modal-backdrop');
|
||||||
|
backdrops.forEach(function(backdrop) {
|
||||||
|
backdrop.remove();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
{% endblock customJS %}
|
||||||
Loading…
x
Reference in New Issue
Block a user