change21
This commit is contained in:
parent
066a111def
commit
b15b95317d
Binary file not shown.
Binary file not shown.
@ -66,7 +66,7 @@ class TruckForm(forms.ModelForm):
|
||||
fields = [
|
||||
'truck_type_link', 'model', 'model_ar', 'year', 'plate_no',
|
||||
'load_capacity', 'load_capacity_ar', 'color', 'color_ar', 'registration_expiry_date',
|
||||
'truck_picture', 'registration_front', 'registration_back', 'driver_license'
|
||||
'truck_picture', 'registration_front', 'registration_back', 'driver_license_front', 'driver_license_back'
|
||||
]
|
||||
widgets = {
|
||||
'truck_type_link': forms.Select(attrs={'class': 'form-select'}),
|
||||
@ -82,7 +82,8 @@ class TruckForm(forms.ModelForm):
|
||||
'truck_picture': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
'registration_front': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
'registration_back': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
'driver_license': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
'driver_license_front': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
'driver_license_back': forms.FileInput(attrs={'class': 'form-control'}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@ -144,4 +145,4 @@ class ShipperOfferForm(forms.Form):
|
||||
|
||||
delivery_date = forms.DateField(label=_('Requested Delivery Date'), widget=forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}))
|
||||
amount = forms.DecimalField(label=_('Offer Amount'), max_digits=10, decimal_places=2, widget=forms.NumberInput(attrs={'class': 'form-control', 'step': '0.01'}))
|
||||
comments = forms.CharField(label=_('Comments'), required=False, widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 2}))
|
||||
comments = forms.CharField(label=_('Comments'), required=False, widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 2}))
|
||||
27
core/migrations/0012_remove_truck_driver_license_and_more.py
Normal file
27
core/migrations/0012_remove_truck_driver_license_and_more.py
Normal file
@ -0,0 +1,27 @@
|
||||
# Generated by Django 5.2.7 on 2026-01-23 16:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0011_trucktype_alter_truck_truck_type_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='truck',
|
||||
name='driver_license',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='truck',
|
||||
name='driver_license_back',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='docs/', verbose_name='Driver License (Back Face)'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='truck',
|
||||
name='driver_license_front',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='docs/', verbose_name='Driver License (Front Face)'),
|
||||
),
|
||||
]
|
||||
Binary file not shown.
@ -109,7 +109,8 @@ class Truck(models.Model):
|
||||
truck_picture = models.ImageField(_('Truck Picture'), upload_to='trucks/', blank=True, null=True)
|
||||
registration_front = models.ImageField(_('Registration Front'), upload_to='docs/', blank=True, null=True)
|
||||
registration_back = models.ImageField(_('Registration Back'), upload_to='docs/', blank=True, null=True)
|
||||
driver_license = models.ImageField(_('Driver License'), upload_to='docs/', blank=True, null=True)
|
||||
driver_license_front = models.ImageField(_('Driver License (Front Face)'), upload_to='docs/', blank=True, null=True)
|
||||
driver_license_back = models.ImageField(_('Driver License (Back Face)'), upload_to='docs/', blank=True, null=True)
|
||||
|
||||
is_approved = models.BooleanField(_('Is Approved'), default=False)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
@ -256,4 +257,4 @@ def sync_user_groups(sender, instance, **kwargs):
|
||||
instance.user.groups.remove(*other_groups)
|
||||
|
||||
# Add user to the correct group
|
||||
instance.user.groups.add(group)
|
||||
instance.user.groups.add(group)
|
||||
|
||||
@ -87,7 +87,8 @@
|
||||
data-truck-picture="{% if truck.truck_picture %}{{ truck.truck_picture.url }}{% endif %}"
|
||||
data-reg-front="{% if truck.registration_front %}{{ truck.registration_front.url }}{% endif %}"
|
||||
data-reg-back="{% if truck.registration_back %}{{ truck.registration_back.url }}{% endif %}"
|
||||
data-license="{% if truck.driver_license %}{{ truck.driver_license.url }}{% endif %}">
|
||||
data-license-front="{% if truck.driver_license_front %}{{ truck.driver_license_front.url }}{% endif %}"
|
||||
data-license-back="{% if truck.driver_license_back %}{{ truck.driver_license_back.url }}{% endif %}">
|
||||
<i class="fa-solid fa-eye me-1"></i> {% trans "View" %}
|
||||
</button>
|
||||
<a href="{% url 'approve_truck' truck.id %}" class="btn btn-success btn-sm">
|
||||
@ -145,7 +146,8 @@
|
||||
data-truck-picture="{% if truck.truck_picture %}{{ truck.truck_picture.url }}{% endif %}"
|
||||
data-reg-front="{% if truck.registration_front %}{{ truck.registration_front.url }}{% endif %}"
|
||||
data-reg-back="{% if truck.registration_back %}{{ truck.registration_back.url }}{% endif %}"
|
||||
data-license="{% if truck.driver_license %}{{ truck.driver_license.url }}{% endif %}">
|
||||
data-license-front="{% if truck.driver_license_front %}{{ truck.driver_license_front.url }}{% endif %}"
|
||||
data-license-back="{% if truck.driver_license_back %}{{ truck.driver_license_back.url }}{% endif %}">
|
||||
<i class="fa-solid fa-eye me-1"></i> {% trans "View" %}
|
||||
</button>
|
||||
<a href="{% url 'suspend_truck' truck.id %}" class="btn btn-outline-danger btn-sm">
|
||||
@ -166,7 +168,7 @@
|
||||
|
||||
<!-- Truck Details Modal -->
|
||||
<div class="modal fade" id="truckDetailsModal" tabindex="-1" aria-labelledby="truckDetailsModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content border-0 shadow">
|
||||
<div class="modal-header bg-primary text-white">
|
||||
<h5 class="modal-title fw-bold" id="truckDetailsModalLabel">{% trans "Truck Details" %}</h5>
|
||||
@ -222,7 +224,7 @@
|
||||
<hr class="my-4">
|
||||
<h6 class="fw-bold text-primary mb-3">{% trans "Documents & Registration" %}</h6>
|
||||
<div class="row g-3">
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
<p class="small text-muted mb-1">{% trans "Registration Front" %}</p>
|
||||
<div class="bg-light rounded text-center p-2">
|
||||
<a id="modal-reg-front-link" href="#" target="_blank">
|
||||
@ -231,7 +233,7 @@
|
||||
<p id="no-reg-front" class="text-muted py-3 mb-0" style="display: none;">{% trans "Not available" %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-3">
|
||||
<p class="small text-muted mb-1">{% trans "Registration Back" %}</p>
|
||||
<div class="bg-light rounded text-center p-2">
|
||||
<a id="modal-reg-back-link" href="#" target="_blank">
|
||||
@ -240,13 +242,22 @@
|
||||
<p id="no-reg-back" class="text-muted py-3 mb-0" style="display: none;">{% trans "Not available" %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<p class="small text-muted mb-1">{% trans "Driver License" %}</p>
|
||||
<div class="col-md-3">
|
||||
<p class="small text-muted mb-1">{% trans "License Front" %}</p>
|
||||
<div class="bg-light rounded text-center p-2">
|
||||
<a id="modal-license-link" href="#" target="_blank">
|
||||
<img id="modal-license-img" src="" alt="License" class="img-fluid rounded" style="max-height: 120px; display: none;">
|
||||
<a id="modal-license-front-link" href="#" target="_blank">
|
||||
<img id="modal-license-front-img" src="" alt="License Front" class="img-fluid rounded" style="max-height: 120px; display: none;">
|
||||
</a>
|
||||
<p id="no-license" class="text-muted py-3 mb-0" style="display: none;">{% trans "Not available" %}</p>
|
||||
<p id="no-license-front" class="text-muted py-3 mb-0" style="display: none;">{% trans "Not available" %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<p class="small text-muted mb-1">{% trans "License Back" %}</p>
|
||||
<div class="bg-light rounded text-center p-2">
|
||||
<a id="modal-license-back-link" href="#" target="_blank">
|
||||
<img id="modal-license-back-img" src="" alt="License Back" class="img-fluid rounded" style="max-height: 120px; display: none;">
|
||||
</a>
|
||||
<p id="no-license-back" class="text-muted py-3 mb-0" style="display: none;">{% trans "Not available" %}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -326,7 +337,8 @@
|
||||
{ id: 'modal-truck-img', noId: 'no-truck-img', src: data.truckPicture },
|
||||
{ id: 'modal-reg-front-img', noId: 'no-reg-front', src: data.regFront, linkId: 'modal-reg-front-link' },
|
||||
{ id: 'modal-reg-back-img', noId: 'no-reg-back', src: data.regBack, linkId: 'modal-reg-back-link' },
|
||||
{ id: 'modal-license-img', noId: 'no-license', src: data.license, linkId: 'modal-license-link' }
|
||||
{ id: 'modal-license-front-img', noId: 'no-license-front', src: data.licenseFront, linkId: 'modal-license-front-link' },
|
||||
{ id: 'modal-license-back-img', noId: 'no-license-back', src: data.licenseBack, linkId: 'modal-license-back-link' }
|
||||
];
|
||||
|
||||
imgFields.forEach(field => {
|
||||
@ -366,4 +378,4 @@
|
||||
border-bottom: none;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@ -101,7 +101,7 @@
|
||||
<h5>{% trans "Documents & Photos" %}</h5>
|
||||
|
||||
<div class="row {% if CURRENT_LANGUAGE == "ar" %}flex-row-reverse{% endif %}">
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="col-md-12 mb-3">
|
||||
<label class="form-label">{% trans "Truck Picture" %}</label>
|
||||
{% if truck.truck_picture %}
|
||||
<div class="mb-2">
|
||||
@ -111,17 +111,31 @@
|
||||
{{ form.truck_picture }}
|
||||
{{ form.truck_picture.errors }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row {% if CURRENT_LANGUAGE == "ar" %}flex-row-reverse{% endif %}">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">{% trans "Driver License" %}</label>
|
||||
{% if truck.driver_license %}
|
||||
<label class="form-label">{% trans "Driver License (Front Face)" %}</label>
|
||||
{% if truck.driver_license_front %}
|
||||
<div class="mb-2">
|
||||
<img src="{{ truck.driver_license.url }}" class="img-thumbnail" style="height: 100px;">
|
||||
<img src="{{ truck.driver_license_front.url }}" class="img-thumbnail" style="height: 100px;">
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ form.driver_license }}
|
||||
{{ form.driver_license.errors }}
|
||||
{{ form.driver_license_front }}
|
||||
{{ form.driver_license_front.errors }}
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">{% trans "Driver License (Back Face)" %}</label>
|
||||
{% if truck.driver_license_back %}
|
||||
<div class="mb-2">
|
||||
<img src="{{ truck.driver_license_back.url }}" class="img-thumbnail" style="height: 100px;">
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ form.driver_license_back }}
|
||||
{{ form.driver_license_back.errors }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row {% if CURRENT_LANGUAGE == "ar" %}flex-row-reverse{% endif %}">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">{% trans "Registration (Front Face)" %}</label>
|
||||
@ -158,4 +172,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
Loading…
x
Reference in New Issue
Block a user