Merge remote-tracking branch 'origin/main'

This commit is contained in:
Marwan Alwali 2025-05-05 18:00:19 +03:00
commit 8af81d699c
5 changed files with 23 additions and 15 deletions

View File

@ -1,12 +1,7 @@
#!/bin/bash
apt-get update
apt-get install -y libgl1
apt-get install -y libglib2.0-dev
apt-get install -y libzbar0
apt-get install -y cmake build-essential xmlsec1 libxmlsec1-dev
apt-get install -y pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl
apt-get install -y libssl-dev
sudo apt-get update && sudo apt-get install libgl1 libglib2.0-dev libzbar0 cmake build-essential xmlsec1 libxmlsec1-dev pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl libssl-dev -y
pip install --upgrade pip
pip install -r requirements_dev.txt
./apply_initial_migrations.sh

View File

@ -483,7 +483,7 @@ class VendorForm(forms.ModelForm):
:type Meta: Type[VendorForm.Meta]
"""
phone_number = forms.CharField(label=_("Phone Number"),min_length=10,max_length=10,validators=[RegexValidator(regex='^05[0-9]{8}$')], required=True)
contact_person = forms.CharField(label=_("Phone Number"),min_length=10,max_length=10,validators=[RegexValidator(regex='^05[0-9]{8}$')], required=True)
contact_person = forms.CharField(label=_("Contact Person"),min_length=10,max_length=10,validators=[RegexValidator(regex='^05[0-9]{8}$')], required=True)
class Meta:
model = Vendor

View File

@ -472,7 +472,12 @@ class Car(models.Model):
color = self.colors.exterior.name if self.colors else ""
except:
pass
hash_object.update(f"{self.id_car_make.name}{self.id_car_model.name}{self.year}{self.id_car_serie.name}{self.id_car_trim.name}{color}".encode('utf-8'))
make = self.id_car_make.name if self.id_car_make else ""
model = self.id_car_model.name if self.id_car_model else ""
year = self.year if self.year else 0
serie = self.id_car_serie.name if self.id_car_serie else ""
trim = self.id_car_trim.name if self.id_car_trim else ""
hash_object.update(f"{make}{model}{year}{serie}{trim}{color}".encode('utf-8'))
return hash_object.hexdigest()
def mark_as_sold(self,request):
@ -865,6 +870,8 @@ class Dealer(models.Model, LocalizedNameMixin):
print(e)
return None
def get_vendors(self):
return VendorModel.objects.filter(entity_model=self.entity)
@property
def is_staff_exceed_quota_limit(self):
quota = self.user_quota

View File

@ -1318,6 +1318,12 @@ class CarUpdateView(
def get_success_url(self):
return reverse("car_detail", kwargs={"pk": self.object.pk})
def get_form(self, form_class=None):
form = super().get_form(form_class)
dealer = get_user_type(self.request)
print(dealer.get_vendors())
form.fields["vendor"].queryset = dealer.get_vendors()
return form
class CarDeleteView(
LoginRequiredMixin, PermissionRequiredMixin, SuccessMessageMixin, DeleteView

View File

@ -26,7 +26,7 @@
{% block content %}
<div class="mb-9">
<div id="projectSummary">
<div id="projectSummary">
<div class="row g-3 justify-content-between align-items-end mb-4">
<div class="col-12 col-sm-auto">
@ -148,7 +148,7 @@
<td class="align-middle white-space-nowrap">
<p class="fw-bold text-body mb-0">{{car.receiving_date|timesince}}</p>
</td>
<td class="align-middle white-space-nowrap statuses">
{% if car.status == "available" %}
<span class="badge badge-phoenix fs-11 badge-phoenix-success">{{ _("Available") }}</span>
@ -164,13 +164,13 @@
<div class="btn-reveal-trigger position-static">
<button class="btn btn-sm dropdown-toggle dropdown-caret-none transition-none btn-reveal fs-10" type="button" data-bs-toggle="dropdown" data-boundary="window" aria-haspopup="true" aria-expanded="false" data-bs-reference="parent"><span class="fas fa-ellipsis-h fs-10"></span></button>
<div class="dropdown-menu dropdown-menu-end py-2">
<a class="dropdown-item" href="#!">{{ _("View") }}</a>
<a class="dropdown-item" href="{% url 'car_detail' car.pk %}">{{ _("View") }}</a>
<a class="dropdown-item" href="#!">{{ _("Export") }}</a>
</div>
</div>
</td>
</tr>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
@ -198,7 +198,7 @@
})
link.classList.add('active')
})
})
})
function on_before_request() {
document.querySelector('.table').classList.toggle('on-before-request')
document.querySelector('.model-select').classList.add('on-after-request')