Merge pull request 'frontend' (#37) from frontend into main

Reviewed-on: #37
Reviewed-by: ismail <ismail.mosa.ibrahim@gmail.com>
This commit is contained in:
ismail 2025-05-19 17:35:16 +03:00
commit 808a00edd4
36 changed files with 153 additions and 162 deletions

View File

@ -6,12 +6,16 @@ echo "Delete Old Cache"
find ./car_inventory -type d -iname "__pycache__"|xargs rm -rf find ./car_inventory -type d -iname "__pycache__"|xargs rm -rf
find ./inventory -type d -iname "__pycache__"|xargs rm -rf find ./inventory -type d -iname "__pycache__"|xargs rm -rf
echo "Apply Base Migrate" echo "Apply Base Migrate"
python3 manage.py migrate python3 manage.py migrate
echo "Apply Make Migratinos"
python3 manage.py makemigrations python3 manage.py makemigrations
echo "Apply Appointment Migratinos"
python3 manage.py makemigrations appointment
echo "Apply Final Migrate" echo "Apply Final Migrate"
python3 manage.py migrate python3 manage.py migrate

View File

@ -1,4 +1,4 @@
# Generated by Django 5.1.7 on 2025-05-18 15:52 # Generated by Django 5.1.7 on 2025-05-19 11:40
import datetime import datetime
import django.core.validators import django.core.validators
@ -330,6 +330,7 @@ class Migration(migrations.Migration):
('logo', models.ImageField(blank=True, null=True, upload_to='logos/users', verbose_name='Logo')), ('logo', models.ImageField(blank=True, null=True, upload_to='logos/users', verbose_name='Logo')),
('joined_at', models.DateTimeField(auto_now_add=True, verbose_name='Joined At')), ('joined_at', models.DateTimeField(auto_now_add=True, verbose_name='Joined At')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
('slug', models.SlugField(blank=True, max_length=255, null=True, unique=True)),
('entity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.entitymodel')), ('entity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.entitymodel')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='dealer', to=settings.AUTH_USER_MODEL)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='dealer', to=settings.AUTH_USER_MODEL)),
], ],
@ -368,6 +369,7 @@ class Migration(migrations.Migration):
('image', models.ImageField(blank=True, null=True, upload_to='customers/', verbose_name='Image')), ('image', models.ImageField(blank=True, null=True, upload_to='customers/', verbose_name='Image')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')),
('slug', models.SlugField(blank=True, editable=False, max_length=255, null=True, unique=True)),
('customer_model', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.customermodel')), ('customer_model', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.customermodel')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='customer_profile', to=settings.AUTH_USER_MODEL)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='customer_profile', to=settings.AUTH_USER_MODEL)),
('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='customers', to='inventory.dealer')), ('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='customers', to='inventory.dealer')),
@ -429,7 +431,7 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('object_id', models.PositiveIntegerField()), ('object_id', models.PositiveIntegerField()),
('activity_type', models.CharField(choices=[('call', 'Call'), ('sms', 'SMS'), ('email', 'Email'), ('whatsapp', 'WhatsApp'), ('visit', 'Visit'), ('negotiation', 'Negotiation'), ('follow_up', 'Follow Up'), ('won', 'Won'), ('lost', 'Lost'), ('closed', 'Closed'), ('converted', 'Converted'), ('transfer', 'Transfer'), ('add_car', 'Add Car'), ('sale_car', 'Sale Car'), ('reserve_car', 'Reserve Car'), ('transfer_car', 'Transfer Car'), ('remove_car', 'Remove Car'), ('create_quotation', 'Create Quotation'), ('cancel_quotation', 'Cancel Quotation'), ('create_order', 'Create Order'), ('cancel_order', 'Cancel Order'), ('create_invoice', 'Create Invoice'), ('cancel_invoice', 'Cancel Invoice')], max_length=50, verbose_name='Activity Type')), ('activity_type', models.CharField(choices=[('call', 'Call'), ('sms', 'SMS'), ('email', 'Email'), ('meeting', 'Meeting'), ('whatsapp', 'WhatsApp'), ('visit', 'Visit'), ('negotiation', 'Negotiation'), ('follow_up', 'Follow Up'), ('won', 'Won'), ('lost', 'Lost'), ('closed', 'Closed'), ('converted', 'Converted'), ('transfer', 'Transfer'), ('add_car', 'Add Car'), ('sale_car', 'Sale Car'), ('reserve_car', 'Reserve Car'), ('transfer_car', 'Transfer Car'), ('remove_car', 'Remove Car'), ('create_quotation', 'Create Quotation'), ('cancel_quotation', 'Cancel Quotation'), ('create_order', 'Create Order'), ('cancel_order', 'Cancel Order'), ('create_invoice', 'Create Invoice'), ('cancel_invoice', 'Cancel Invoice')], max_length=50, verbose_name='Activity Type')),
('notes', models.TextField(blank=True, null=True, verbose_name='Notes')), ('notes', models.TextField(blank=True, null=True, verbose_name='Notes')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')),
@ -555,6 +557,7 @@ class Migration(migrations.Migration):
('converted_at', models.DateTimeField(blank=True, null=True)), ('converted_at', models.DateTimeField(blank=True, null=True)),
('created', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created')), ('created', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Created')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')),
('slug', models.SlugField(blank=True, null=True, unique=True)),
('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='customer_leads', to='inventory.customer')), ('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='customer_leads', to='inventory.customer')),
('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leads', to='inventory.dealer')), ('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='leads', to='inventory.dealer')),
('id_car_make', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='inventory.carmake', verbose_name='Make')), ('id_car_make', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='inventory.carmake', verbose_name='Make')),
@ -748,6 +751,7 @@ class Migration(migrations.Migration):
('address', models.CharField(max_length=200, verbose_name='Address')), ('address', models.CharField(max_length=200, verbose_name='Address')),
('logo', models.ImageField(blank=True, null=True, upload_to='logos/vendors', verbose_name='Logo')), ('logo', models.ImageField(blank=True, null=True, upload_to='logos/vendors', verbose_name='Logo')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
('slug', models.SlugField(blank=True, max_length=255, null=True, unique=True, verbose_name='Slug')),
('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='vendors', to='inventory.dealer')), ('dealer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='vendors', to='inventory.dealer')),
('vendor_model', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='django_ledger.vendormodel', verbose_name='Vendor Model')), ('vendor_model', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, to='django_ledger.vendormodel', verbose_name='Vendor Model')),
], ],

View File

@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 16:23
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='dealer',
name='slug',
field=models.SlugField(blank=True, max_length=255, null=True, unique=True),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 16:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0002_dealer_slug'),
]
operations = [
migrations.AddField(
model_name='customer',
name='slug',
field=models.SlugField(blank=True, editable=False, max_length=255, null=True, unique=True),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 16:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0003_customer_slug'),
]
operations = [
migrations.AddField(
model_name='vendor',
name='slug',
field=models.SlugField(blank=True, max_length=255, null=True, unique=True, verbose_name='Slug'),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 16:48
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0004_vendor_slug'),
]
operations = [
migrations.AddField(
model_name='lead',
name='slug',
field=models.SlugField(blank=True, null=True, unique=True),
),
]

View File

@ -1,18 +0,0 @@
# Generated by Django 5.1.7 on 2025-05-18 16:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0005_lead_slug'),
]
operations = [
migrations.AlterField(
model_name='activity',
name='activity_type',
field=models.CharField(choices=[('call', 'Call'), ('sms', 'SMS'), ('email', 'Email'), ('meeting', 'Meeting'), ('whatsapp', 'WhatsApp'), ('visit', 'Visit'), ('negotiation', 'Negotiation'), ('follow_up', 'Follow Up'), ('won', 'Won'), ('lost', 'Lost'), ('closed', 'Closed'), ('converted', 'Converted'), ('transfer', 'Transfer'), ('add_car', 'Add Car'), ('sale_car', 'Sale Car'), ('reserve_car', 'Reserve Car'), ('transfer_car', 'Transfer Car'), ('remove_car', 'Remove Car'), ('create_quotation', 'Create Quotation'), ('cancel_quotation', 'Cancel Quotation'), ('create_order', 'Create Order'), ('cancel_order', 'Cancel Order'), ('create_invoice', 'Create Invoice'), ('cancel_invoice', 'Cancel Invoice')], max_length=50, verbose_name='Activity Type'),
),
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -9,14 +9,16 @@
<form class="form" method="post"> <form class="form" method="post">
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
<button type="submit" name="add_lead" id="lead-save" class="btn btn-phoenix-primary"> <div class="d-flex justify-content-start">
<i class="fa-solid fa-floppy-disk"></i> {{ _("Save") }} <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
</button> <!--<i class="bi bi-save"></i> -->
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-secondary"> {{ _("Save") }}
<i class="fa-solid fa-ban"></i> {{ _("Cancel") }} </button>
</a> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</form> </form>
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -135,13 +135,13 @@
<!-- Form Actions --> <!-- Form Actions -->
<div class="d-flex justify-content-end gap-3"> <div class="d-flex justify-content-end gap-3">
<button type="reset" class="btn btn-phoenix-danger px-4"> <button type="reset" class="btn btn-phoenix-danger px-4">
<span class="fas fa-redo me-2"></span>{% trans "Reset" %} <span class="fas fa-redo me-1"></span>{% trans "Reset" %}
</button> </button>
<button type="submit" class="btn btn-phoenix-primary px-6"> <button type="submit" class="btn btn-phoenix-primary px-6">
{% if form.instance.pk %} {% if form.instance.pk %}
<span class="fas fa-save me-2"></span>{% trans "Update" %} <span class="fas fa-save me-1"></span>{% trans "Update" %}
{% else %} {% else %}
<span class="fas fa-plus me-2"></span>{% trans "Create" %} <span class="fas fa-plus me-1"></span>{% trans "Create" %}
{% endif %} {% endif %}
</button> </button>
</div> </div>

View File

@ -26,12 +26,11 @@
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
<div class="col-12"> <div class="col-12">
<button class="btn btn-phoenix-primary" type="submit"> <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<i class="fa-solid fa-floppy-disk"></i> {% trans "Save" %} <!--<i class="bi bi-save"></i> -->
{{ _("Save") }}
</button> </button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-secondary"> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
<i class="fa-solid fa-ban"></i> {{ _("Cancel") }}
</a>
</div> </div>
</form> </form>
</div> </div>

View File

@ -51,12 +51,30 @@
</div> </div>
<!-- Save and Cancel Buttons --> <!-- Save and Cancel Buttons -->
<div class="row g-1 mt-4"> {% comment %} <div class="row g-1 mt-4">
<div class="btn-group"> <div class="btn-group">
<button type="submit" class="btn btn-success btn-sm me-1">{% trans "Save" %}</button> <button type="submit" class="btn btn-sm btn-success me-1"><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button>
<a href="{% url 'car_detail' car.pk %}" class="btn btn-secondary btn-sm">{% trans "Cancel" %}</a> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban"></i>{% trans "Cancel" %}</a>
</div> </div>
</div> {% endcomment %}
{% comment %} <div class="row justify-content-center g-1 mt-4">
<div class="col-auto">
<div class="btn-group shadow-sm">
<button type="submit" class="btn btn-success btn-sm me-2"><i class="fa-solid fa-floppy-disk me-1"></i>{% trans "Save" %}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-danger btn-sm"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</div>
</div> {% endcomment %}
<div class="d-flex justify-content-center mt-4">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>{{ _("Save") }}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>

View File

@ -35,13 +35,30 @@
{{ form|crispy }} {{ form|crispy }}
</div> </div>
</div> </div>
<div class="row g-1"> {% comment %} <div class="row g-1">
<div class="btn-group"> <div class="btn-group">
<button type="submit" class="btn btn-sm btn-success me-1">{% trans "Save" %}</button> <button type="submit" class="btn btn-sm btn-success me-1"><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger">{% trans "Cancel" %}</a> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban"></i>{% trans "Cancel" %}</a>
</div> </div>
</div> {% endcomment %}
<div class="d-flex justify-content-center">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<!--<i class="bi bi-save"></i> -->
{{ _("Save") }}
</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>

View File

@ -103,9 +103,10 @@
</div> </div>
<!-- Save and Cancel Buttons --> <!-- Save and Cancel Buttons -->
<div class="btn-group"> <div class="btn-group">
<button type="submit" class="btn btn-sm btn-success">{% trans "Save" %}</button> <button type="submit" class="btn btn-sm btn-success me-1">{% trans "Save" %}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger">{% trans "Cancel" %}</a> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger me-1">{% trans "Cancel" %}</a>
</div> </div>
</main> </main>
</div> </div>
</div> </div>

View File

@ -13,7 +13,14 @@
<form method="post" action=""> <form method="post" action="">
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
<button type="submit" class="btn btn-primary">{% trans 'Save' %}</button> <!--<button type="submit" class="btn btn-primary">{% trans 'Save' %}</button> -->
{% comment %} <button class="btn btn-sm btn-success me-1" type="submit"><i class="fa-solid fa-floppy-disk"></i>{{ _("Save") }}</button> {% endcomment %}
<div class="d-flex justify-content-start">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>{{ _("Save") }}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -8,7 +8,8 @@
<div class="d-flex justify-content-between mb-2 p-6"> <div class="d-flex justify-content-between mb-2 p-6">
<span></span> <span></span>
<h3 class="text-center">{% trans "Expenses" %}</h3> <h3 class="text-center">{% trans "Expenses" %}</h3>
<a href="{% url 'item_expense_create' %}" class="btn btn-sm btn-success ">{% trans "Add Expense" %}</a> <a href="{% url 'item_expense_create' %}" class="btn btn-md btn-phoenix-primary"><i class="fa fa-plus me-2"></i>{% trans "Add Expense" %}</a>
</div> </div>
<div class="mx-n4 px-4 mx-lg-n6 px-lg-6 pt-7 border-y"> <div class="mx-n4 px-4 mx-lg-n6 px-lg-6 pt-7 border-y">

View File

@ -19,7 +19,11 @@
<form method="post" action=""> <form method="post" action="">
{% csrf_token %} {% csrf_token %}
{{ form|crispy }} {{ form|crispy }}
<button type="submit" class="btn btn-sm btn-primary">{% trans 'Save' %}</button> <div class="d-flex justify-content-start">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i> {{ _("Save") }}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -8,7 +8,8 @@
<div class="d-flex justify-content-between"> <div class="d-flex justify-content-between">
<h3 class="mb-2">{% trans "Services" %}</h3> <h3 class="mb-2">{% trans "Services" %}</h3>
<a href="{% url 'item_service_create' %}" class="btn btn-sm btn-phoenix-primary ">{% trans "Add Service" %}</a> <a href="{% url 'item_service_create' %}" class="btn btn-md btn-phoenix-primary"><i class="fa fa-plus me-2"></i>{% trans "Add Service" %}</a>
</div> </div>

View File

@ -26,12 +26,12 @@
{% for error in form.errors %} {% for error in form.errors %}
<div class="text-danger">{{ error }}</div> <div class="text-danger">{{ error }}</div>
{% endfor %} {% endfor %}
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-start">
<button class="btn btn-sm btn-success me-1" type="submit"> <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<!--<i class="bi bi-save"></i> --> <!--<i class="bi bi-save"></i> -->
{{ _("Save") }} {{ _("Save") }}
</button> </button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger">{% trans "Cancel" %}</a> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>

View File

@ -8,7 +8,7 @@
<div class="d-flex justify-content-between mb-2"> <div class="d-flex justify-content-between mb-2">
<h3 class="">{% trans "Bank Accounts" %}</h3> <h3 class="">{% trans "Bank Accounts" %}</h3>
<a href="{% url 'bank_account_create' %}" class="btn btn-sm btn-phoenix-primary ">{% trans "Add Bank Account" %}</a> <a href="{% url 'bank_account_create' %}" class="btn btn-md btn-phoenix-primary"><i class="fa fa-plus me-2"></i>{% trans "Add Bank Account" %}</a>
</div> </div>
<div class="table-responsive px-1 scrollbar"> <div class="table-responsive px-1 scrollbar">

View File

@ -37,10 +37,12 @@
</div> </div>
<!-- Buttons --> <!-- Buttons -->
<div class="mt-5 text-center">
<button type="submit" class="btn btn-success me-2" {% if not items %}disabled{% endif %}><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button> <div class="d-flex mt-5 justify-content-center">
<a href="{% url 'bill_list' %}" class="btn btn-secondary"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a> <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>{{ _("Save") }}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -13,7 +13,7 @@
<div class="d-flex flex-column min-vh-100"> <div class="d-flex flex-column min-vh-100">
<div class="d-grid gap-2 d-md-flex justify-content-md-end"> <div class="d-grid gap-2 d-md-flex justify-content-md-end">
<a href="{% url 'bill_create' %}" class="btn btn-md btn-phoenix-primary"> <a href="{% url 'bill_create' %}" class="btn btn-md btn-phoenix-primary">
<i class="fa fa-plus"></i> <i class="fa fa-plus me-2"></i>
{% trans 'New Bill' %}</a> {% trans 'New Bill' %}</a>
</div> </div>
<div class="d-flex flex-column flex-sm-grow-1 p-4"> <div class="d-flex flex-column flex-sm-grow-1 p-4">

View File

@ -26,11 +26,15 @@
<div class="text-danger">{{ error }}</div> <div class="text-danger">{{ error }}</div>
{% endfor %} {% endfor %}
<div class="d-flex justify-content-start"> <div class="d-flex justify-content-start">
<button class="btn btn-sm btn-phoenix-success me-1" type="submit">
<i class="fa-solid fa-floppy-disk"></i> {{ _("Save") }} <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<!--<i class="bi bi-save"></i> -->
{{ _("Save") }}
</button> </button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-phoenix-secondary"><i class="fa-solid fa-ban"></i> {% trans "Cancel"|capfirst %}</a>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
<div class="row mt-4"> <div class="row mt-4">
<div class="d-grid gap-2 d-md-flex justify-content-md-end"> <div class="d-grid gap-2 d-md-flex justify-content-md-end">
<a href="{% url 'account_create' %}" class="btn btn-md btn-phoenix-primary"> <a href="{% url 'account_create' %}" class="btn btn-md btn-phoenix-primary">
<i class="fa fa-plus"></i> <i class="fa fa-plus me-2"></i>
{% trans 'New Account' %}</a> {% trans 'New Account' %}</a>
</div> </div>
<h3 class="mb-3"> <h3 class="mb-3">

View File

@ -13,8 +13,8 @@
{{ form|crispy }} {{ form|crispy }}
</div> </div>
<div class="mt-5 text-center"> <div class="mt-5 text-center">
<button type="submit" class="btn btn-success me-2"><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button> <button type="submit" class="btn btn-success me-2"><i class="fa-solid fa-floppy-disk me-1"></i>{% trans "Save" %}</button>
<a href="{% url 'journalentry_list' ledger.pk %}" class="btn btn-secondary"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a> <a href="{% url 'journalentry_list' ledger.pk %}" class="btn btn-secondary"><i class="fa-solid fa-ban me-1"></i> {% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>

View File

@ -12,10 +12,17 @@
<div class="row g-3"> <div class="row g-3">
{{ form|crispy }} {{ form|crispy }}
</div> </div>
<div class="mt-5 text-center"> {% comment %} <div class="mt-5 text-center">
<button type="submit" class="btn btn-success me-2"><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button> <button type="submit" class="btn btn-success me-2"><i class="fa-solid fa-floppy-disk"></i>{% trans "Save" %}</button>
<a href="{% url 'ledger_list' %}" class="btn btn-secondary"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a> <a href="{% url 'ledger_list' %}" class="btn btn-danger"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a>
</div> </div> {% endcomment %}
<div class="d-flex justify-content-center">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>{{ _("Save") }}</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</form> </form>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -10,7 +10,7 @@
</div> </div>
<div class="d-grid gap-2 d-md-flex justify-content-md-end"> <div class="d-grid gap-2 d-md-flex justify-content-md-end">
<a href="{% url 'ledger_create' %}" class="btn btn-md btn-phoenix-primary"> <a href="{% url 'ledger_create' %}" class="btn btn-md btn-phoenix-primary">
<i class="fa fa-plus"></i> <i class="fa fa-plus me-2"></i>
{% trans 'Create Ledger' %}</a> {% trans 'Create Ledger' %}</a>
</div> </div>
<div class="table-responsive px-1 scrollbar mt-3"> <div class="table-responsive px-1 scrollbar mt-3">

View File

@ -12,13 +12,8 @@
{% csrf_token %} {% csrf_token %}
{{ redirect_field }} {{ redirect_field }}
{{ form|crispy }} {{ form|crispy }}
<button class="btn btn-phoenix-primary" type="submit"> <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>{{ _("Save") }}</button>
<i class="fa-solid fa-floppy-disk"></i> <a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
{{ _("Save") }}
</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-secondary">
<i class="fa-solid fa-ban"></i> {% trans "Cancel" %}
</a>
</form> </form>
</div> </div>
</div> </div>

View File

@ -50,21 +50,34 @@
<input class="form-control quantity" type="number" placeholder="Quantity" name="quantity[]" required> <input class="form-control quantity" type="number" placeholder="Quantity" name="quantity[]" required>
</div> </div>
<div class="mb-2 col-sm-3 col-md-3"> <div class="mb-2 col-sm-3 col-md-3">
<button class="btn btn-sm btn-danger removeBtn"><i class="fa-solid fa-trash"></i> {{ _("Remove") }}</button> <button class="btn btn-sm btn-danger removeBtn"><i class="fa-solid fa-trash me-1"></i> {{ _("Remove") }}</button>
</div> </div>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<button id="addMoreBtn" class="btn btn-sm btn-primary"><i class="fa-solid fa-plus"></i> {{ _("Add More")}}</button> <button id="addMoreBtn" class="btn btn-sm btn-primary"><i class="fa-solid fa-plus me-2"></i> {{ _("Add More")}}</button>
</div> </div>
</div> </div>
</div> </div>
<!-- Buttons --> <!-- Buttons -->
<div class="mt-5 text-center"> {% comment %} <div class="mt-5 text-center">
<button type="submit" class="btn btn-success me-2" {% if not items %}disabled{% endif %}><i class="fa-solid fa-floppy-disk"></i> {% trans "Save" %}</button> <button type="submit" class="btn btn-success me-2" {% if not items %}disabled{% endif %}><i class="fa-solid fa-floppy-disk me-1"></i> {% trans "Save" %}</button>
<a href="{% url 'estimate_list' %}" class="btn btn-secondary"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a> <a href="{% url 'estimate_list' %}" class="btn btn-danger"><i class="fa-solid fa-ban me-1"></i> {% trans "Cancel" %}</a>
</div> </div> {% endcomment %}
<div class="d-flex justify-content-center">
<button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<!--<i class="bi bi-save"></i> -->
{{ _("Save") }}
</button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div>
</form> </form>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -46,7 +46,7 @@
<td class="align-middle product white-space-nowrap"> <td class="align-middle product white-space-nowrap">
<a href="{% url 'estimate_detail' estimate.pk %}" <a href="{% url 'estimate_detail' estimate.pk %}"
class="btn btn-sm btn-phoenix-success"> class="btn btn-sm btn-phoenix-success">
<i class="fa-regular fa-eye"></i> <i class="fa-regular fa-eye me-1"></i>
{% trans "view"|capfirst %} {% trans "view"|capfirst %}
</a> </a>
</td> </td>

View File

@ -54,13 +54,14 @@
{% endif %} {% endif %}
</td> </td>
<td class="align-middle product white-space-nowrap">{{ invoice.created }}</td> <td class="align-middle product white-space-nowrap">{{ invoice.created }}</td>
<td class="text-center"> <td class="align-middle product white-space-nowrap">
<a href="{% url 'invoice_detail' invoice.pk %}" <a href="{% url 'invoice_detail' invoice.pk %}"
class="btn btn-sm btn-phoenix-success"> class="btn btn-sm btn-phoenix-success">
<i class="fa-regular fa-eye"></i> <i class="fa-regular fa-eye me-1"></i>
{% trans "View" %} {% trans "View" %}
</a> </a>
</td> </td>
</tr> </tr>
{% empty %} {% empty %}
<tr> <tr>

View File

@ -41,8 +41,8 @@
{% endif %} {% endif %}
<td class="align-middle product white-space-nowrap py-0">{{ journal.timestamp }}</td> <td class="align-middle product white-space-nowrap py-0">{{ journal.timestamp }}</td>
<td class="align-middle product white-space-nowrap py-0">{{ journal.description }}</td> <td class="align-middle product white-space-nowrap py-0">{{ journal.description }}</td>
<td class=""> <td class="align-middle product white-space-nowrap">
<a href="{% url 'payment_details' journal.pk %}" class="btn btn-sm btn-phoenix-primary"><i class="fa-solid fa-eye"></i> {% trans "View Tranactions" %}</a> <a href="{% url 'payment_details' journal.pk %}" class="btn btn-sm btn-phoenix-primary"><i class="fa-solid fa-eye me-1"></i> {% trans "View Tranactions"|capfirst %}</a>
</td> </td>
</tr> </tr>
{% empty %} {% empty %}

View File

@ -34,13 +34,14 @@
{% for error in form.errors %} {% for error in form.errors %}
<div class="text-danger">{{ error }}</div> <div class="text-danger">{{ error }}</div>
{% endfor %} {% endfor %}
<div class="d-flex mb-3"> <div class="d-flex justify-content-start">
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6">{% trans "Cancel"|capfirst %}</a> <button class="btn btn-sm btn-success me-2" type="submit"><i class="fa-solid fa-floppy-disk me-1"></i>
<button class="btn btn-primary" type="submit">
<!--<i class="bi bi-save"></i> --> <!--<i class="bi bi-save"></i> -->
{{ _("Save") }} {{ _("Save") }}
</button> </button>
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger"><i class="fa-solid fa-ban me-1"></i>{% trans "Cancel" %}</a>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View File

@ -15,7 +15,7 @@
<div class="col-auto"> <div class="col-auto">
<div class="d-md-flex justify-content-between"> <div class="d-md-flex justify-content-between">
<div> <div>
<a href="{% url 'vendor_create' %}" class="btn btn-primary me-4"><span class="fas fa-plus me-2"></span>{{ _("Add Vendor") }}</a> <a href="{% url 'vendor_create' %}" class="btn btn-md btn-phoenix-primary"><span class="fas fa-plus me-2"></span>{{ _("Add Vendor") }}</a>
</div> </div>
</div> </div>