Skip to content

Commit

Permalink
chore: add delivery date & delivery note image on stock receipts crea…
Browse files Browse the repository at this point in the history
…tion form
  • Loading branch information
kennedykori committed Sep 2, 2021
1 parent e144d0c commit 67e08d6
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 43 deletions.
2 changes: 1 addition & 1 deletion fahari/ops/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class StockReceiptVerificationFilter(CommonFieldsFilterset):
class Meta:

model = StockReceiptVerification
fields = "__all__"
exclude = ("delivery_note_image",)


class ActivityLogFilter(CommonFieldsFilterset):
Expand Down
2 changes: 2 additions & 0 deletions fahari/ops/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ class StockReceiptVerificationForm(BaseModelForm):
"batch_number",
"delivery_date",
"expiry_date",
"delivery_note_image",
"comments",
"active",
)
Expand All @@ -133,6 +134,7 @@ def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper.form_id = "stock_receipt_verification_form"
self.fields["facility"].queryset = get_fahari_facilities_queryset()
self.fields["delivery_note_image"].required = True

class Meta(BaseModelForm.Meta):
model = StockReceiptVerification
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.2.6 on 2021-09-01 09:14

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('ops', '0020_auto_20210902_0920'),
]

operations = [
migrations.AddField(
model_name='stockreceiptverification',
name='delivery_note_image',
field=models.ImageField(blank=True, null=True, upload_to='ops/stock_receipts/delivery_notes/', verbose_name='Delivery note photograph'),
),
]
6 changes: 6 additions & 0 deletions fahari/ops/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,12 @@ class StockReceiptVerification(AbstractBase):
batch_number = models.CharField(max_length=64)
delivery_date = models.DateField(default=timezone.datetime.today)
expiry_date = models.DateField(default=timezone.datetime.today)
delivery_note_image = models.ImageField(
upload_to="ops/stock_receipts/delivery_notes/",
null=True,
blank=True,
verbose_name="Delivery note photograph",
)
comments = models.TextField()

def __str__(self):
Expand Down
95 changes: 53 additions & 42 deletions fahari/ops/tests/test_api.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import json
import random
from datetime import date
from os.path import join

from django.conf import settings
from django.core.files.uploadedfile import SimpleUploadedFile
Expand Down Expand Up @@ -398,55 +399,65 @@ def setUp(self):
super().setUp()

def test_create(self):
data = {
"facility": self.facility.pk,
"description": fake.text(),
"pack_size": fake.text(),
"delivery_note_number": fake.name()[:63],
"quantity_received": "10.0",
"batch_number": fake.name()[:63],
"expiry_date": date.today().isoformat(),
"delivery_date": date.today().isoformat(),
"comments": fake.text(),
"organisation": self.global_organisation.pk,
"commodity": self.default_commodity,
"active": False,
}
response = self.client.post(reverse("ops:stock_receipt_verification_create"), data=data)
print(response.content)
self.assertEqual(
response.status_code,
302,
)
with open(
join(settings.STATIC_ROOT, "images", "favicons", "android-icon-192x192.png"), "rb"
) as image_file:
data = {
"facility": self.facility.pk,
"description": fake.text(),
"pack_size": fake.text(),
"delivery_note_number": fake.name()[:63],
"quantity_received": "10.0",
"batch_number": fake.name()[:63],
"expiry_date": date.today().isoformat(),
"delivery_date": date.today().isoformat(),
"comments": fake.text(),
"organisation": self.global_organisation.pk,
"delivery_note_image": image_file,
"commodity": self.default_commodity,
"active": False,
}
response = self.client.post(
reverse("ops:stock_receipt_verification_create"), data=data
)
self.assertEqual(
response.status_code,
302,
)

def test_update(self):
instance = baker.make(
StockReceiptVerification,
facility=self.facility,
organisation=self.global_organisation,
)
data = {
"pk": instance.pk,
"facility": self.facility.pk,
"description": fake.text(),
"pack_size": fake.text(),
"delivery_note_number": fake.name()[:63],
"quantity_received": "10.0",
"batch_number": fake.name()[:63],
"expiry_date": date.today().isoformat(),
"delivery_date": date.today().isoformat(),
"comments": fake.text(),
"organisation": self.global_organisation.pk,
"commodity": self.default_commodity,
"active": False,
}
response = self.client.post(
reverse("ops:stock_receipt_verification_update", kwargs={"pk": instance.pk}), data=data
)
self.assertEqual(
response.status_code,
302,
)
with open(
join(settings.STATIC_ROOT, "images", "favicons", "android-icon-192x192.png"), "rb"
) as image_file:
data = {
"pk": instance.pk,
"facility": self.facility.pk,
"description": fake.text(),
"pack_size": fake.text(),
"delivery_note_number": fake.name()[:63],
"quantity_received": "10.0",
"batch_number": fake.name()[:63],
"expiry_date": date.today().isoformat(),
"delivery_date": date.today().isoformat(),
"comments": fake.text(),
"organisation": self.global_organisation.pk,
"delivery_note_image": image_file,
"commodity": self.default_commodity,
"active": False,
}
response = self.client.post(
reverse("ops:stock_receipt_verification_update", kwargs={"pk": instance.pk}),
data=data,
)
self.assertEqual(
response.status_code,
302,
)

def test_delete(self):
instance = baker.make(
Expand Down

0 comments on commit 67e08d6

Please sign in to comment.