Commit beaf22b4 authored by impfundev's avatar impfundev

feat: uniq account number member

fix: nullable return date on book loan
parent 75f7f42b
# Generated by Django 4.2 on 2024-07-03 05:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('book_loans', '0003_rename_issued_by_bookloans_librarians'),
]
operations = [
migrations.AlterField(
model_name='bookloans',
name='return_date',
field=models.DateTimeField(blank=True, null=True),
),
]
......@@ -11,7 +11,7 @@ class BookLoans(models.Model):
notes = models.TextField(blank=True, null=True)
loan_date = models.DateTimeField()
due_date = models.DateTimeField()
return_date = models.DateTimeField()
return_date = models.DateTimeField(null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
......
# Generated by Django 4.2 on 2024-07-03 05:31
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('members', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='members',
name='uniq_code',
field=models.UUIDField(default=uuid.UUID('7159cb38-38d8-4a14-b38d-aa99818f5dc3'), editable=False),
),
]
# Generated by Django 4.2 on 2024-07-03 05:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('members', '0002_members_uniq_code'),
]
operations = [
migrations.RemoveField(
model_name='members',
name='uniq_code',
),
migrations.AddField(
model_name='members',
name='account_number',
field=models.CharField(default='93080345', editable=False, max_length=8),
),
]
# Generated by Django 4.2 on 2024-07-03 05:49
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('members', '0003_remove_members_uniq_code_members_account_number'),
]
operations = [
migrations.AlterField(
model_name='members',
name='account_number',
field=models.CharField(default='025950513486265', editable=False, max_length=15),
),
]
from django.db import models
from members.utils import generate_unique_number
random_number = generate_unique_number(15)
class Members(models.Model):
account_number = models.CharField(
default=random_number, editable=False, max_length=15
)
name = models.CharField(max_length=50)
email = models.EmailField()
password = models.CharField(max_length=255)
......
<table class="table table-hover">
<thead>
<tr class="table-primary">
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Created At</th>
<th scope="col">Updated At</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
{% if members %} {% for member in members %}
<tr>
<td>{{ member.name }}</td>
<td>{{ member.email }}</td>
<td>{{ member.created_at }}</td>
<td>{{ member.updated_at }}</td>
<td class="d-flex gap-2">
<a
class="btn btn-success"
href="/dashboard/members/{{ member.id }}/update/"
>
<i class="bi bi-pencil-square"></i>
</a>
<button
class="btn btn-danger"
data-bs-toggle="modal"
data-bs-target="#member_delete_modal_{{ member.id }}"
>
<i class="bi bi-trash3-fill"></i>
</button>
</td>
</tr>
{% endfor %} {% else %}
<tr class="w-100">
<td></td>
<td></td>
<td>
<p>Data Empty</p>
</td>
<td></td>
<td></td>
</tr>
{% endif %}
</tbody>
</table>
<table class="table table-hover">
<thead>
<tr class="table-primary">
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Created At</th>
<th scope="col">Updated At</th>
<th scope="col">Account Number</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
{% if members %} {% for member in members %}
<tr class="text-truncate">
<td>{{ member.name }}</td>
<td>{{ member.email }}</td>
<td>{{ member.created_at }}</td>
<td>{{ member.updated_at }}</td>
<td>{{ member.account_number }}</td>
<td class="d-flex gap-2">
<a
class="btn btn-success"
href="/dashboard/members/{{ member.id }}/update/"
>
<i class="bi bi-pencil-square"></i>
</a>
<button
class="btn btn-danger"
data-bs-toggle="modal"
data-bs-target="#member_delete_modal_{{ member.id }}"
>
<i class="bi bi-trash3-fill"></i>
</button>
</td>
</tr>
{% endfor %} {% else %}
<tr class="w-100">
<td></td>
<td></td>
<td></td>
<td>
<p>Data Empty</p>
</td>
<td></td>
<td></td>
</tr>
{% endif %}
</tbody>
</table>
</div>
import random
import string
def generate_unique_number(digit: int):
while True:
number = "".join(random.choices(string.digits, k=digit))
if not is_number_used(number):
return number
def is_number_used(number):
return False
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment