aboutsummaryrefslogtreecommitdiffstats
path: root/servo/views
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2015-10-01 00:31:02 +0300
committerFilipp Lepalaan <filipp@mac.com>2015-10-01 00:31:02 +0300
commit0c6d66e7ced5f1c7843eba4221b08db79e56a021 (patch)
treec16473f761eb5d26d2a3d1a4ceb2f9f2875b44e4 /servo/views
parentec6276e2fb2bb0785f14469bbe8eb292f4a6e6b7 (diff)
downloadServo-0c6d66e7ced5f1c7843eba4221b08db79e56a021.tar.gz
Servo-0c6d66e7ced5f1c7843eba4221b08db79e56a021.tar.bz2
Servo-0c6d66e7ced5f1c7843eba4221b08db79e56a021.zip
Inventory bug fixes
and performance enhancements
Diffstat (limited to 'servo/views')
-rw-r--r--servo/views/order.py20
-rw-r--r--servo/views/purchases.py8
-rw-r--r--servo/views/shipments.py15
3 files changed, 26 insertions, 17 deletions
diff --git a/servo/views/order.py b/servo/views/order.py
index 1712ba0..cc6d430 100644
--- a/servo/views/order.py
+++ b/servo/views/order.py
@@ -310,7 +310,8 @@ def toggle_task(request, order_id, item_id):
checklist_item = get_object_or_404(ChecklistItem, pk=item_id)
try:
- item = ChecklistItemValue.objects.get(order_id=order_id, item=checklist_item)
+ item = ChecklistItemValue.objects.get(order_id=order_id,
+ item=checklist_item)
item.delete()
except ChecklistItemValue.DoesNotExist:
item = ChecklistItemValue()
@@ -348,6 +349,7 @@ def repair(request, order_id, repair_id):
@permission_required("servo.change_order")
def complete_repair(request, order_id, repair_id):
repair = get_object_or_404(Repair, pk=repair_id)
+
if request.method == 'POST':
try:
repair.close(request.user)
@@ -414,7 +416,8 @@ def delete(request, pk):
return redirect(return_to)
except Exception as e:
ed = {'order': order.code, 'error': e}
- messages.error(request, _(u'Cannot delete order %(order)s: %(error)s') % ed)
+ msg = _(u'Cannot delete order %(order)s: %(error)s') % ed
+ messages.error(request, msg)
return redirect(order)
action = request.path
@@ -450,13 +453,14 @@ def remove_user(request, pk, user_id):
Removes this user from the follower list, unsets assignee
"""
order = get_object_or_404(Order, pk=pk)
- user = get_object_or_404(User, pk=user_id)
+ user = get_object_or_404(User, pk=user_id)
try:
order.remove_follower(user)
if user == order.user:
order.set_user(None, request.user)
- order.notify("unset_user", _('User %s removed from followers') % user, request.user)
+ msg = _('User %s removed from followers') % user
+ order.notify("unset_user", msg, request.user)
except Exception as e:
messages.error(request, e)
@@ -623,7 +627,7 @@ def device_from_product(request, pk, item_id):
"""
Turns a SOI into a device and attaches it to this order
"""
- order = Order.objects.get(pk=pk)
+ order = get_object_or_404(Order, pk=pk)
soi = ServiceOrderItem.objects.get(pk=item_id)
try:
@@ -640,8 +644,7 @@ def device_from_product(request, pk, item_id):
@permission_required('servo.change_order')
def reserve_products(request, pk):
- order = Order.objects.get(pk=pk)
- location = request.user.get_location()
+ order = get_object_or_404(Order, pk=pk)
if request.method == 'POST':
for p in order.products.all():
@@ -653,8 +656,7 @@ def reserve_products(request, pk):
return redirect(order)
- data = {'order': order, 'action': request.path}
- return render(request, "orders/reserve_products.html", data)
+ return render(request, "orders/reserve_products.html", locals())
@permission_required("servo.change_order")
diff --git a/servo/views/purchases.py b/servo/views/purchases.py
index 7233ceb..4b789ee 100644
--- a/servo/views/purchases.py
+++ b/servo/views/purchases.py
@@ -14,7 +14,8 @@ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.contrib import messages
from servo.models.order import ServiceOrderItem
-from servo.models import Product, GsxAccount, PurchaseOrder, PurchaseOrderItem
+from servo.models import (Order, Product, GsxAccount,
+ PurchaseOrder, PurchaseOrderItem,)
from servo.forms import PurchaseOrderItemEditForm, PurchaseOrderSearchForm
@@ -202,12 +203,15 @@ def delete_po(request, po_id):
@permission_required('servo.add_purchaseorder')
def create_po(request, product_id=None, order_id=None):
+ """
+ Creates a new Purchase Order
+ """
po = PurchaseOrder(created_by=request.user)
po.location = request.user.get_location()
po.save()
if order_id is not None:
- po.sales_order_id = order_id
+ po.sales_order = Order.objects.get(pk=order_id)
po.save()
for i in ServiceOrderItem.objects.filter(order_id=order_id):
po.add_product(i, amount=1, user=request.user)
diff --git a/servo/views/shipments.py b/servo/views/shipments.py
index ada3a07..18c44ba 100644
--- a/servo/views/shipments.py
+++ b/servo/views/shipments.py
@@ -25,7 +25,9 @@ def prep_counts():
def prep_list_view(request):
-
+ """
+ Prepares the list view for incoming parts and products
+ """
from datetime import timedelta
now = timezone.now()
@@ -33,7 +35,7 @@ def prep_list_view(request):
data['counts'] = prep_counts()
location = request.user.get_location()
- ordered_date_range = [now - timedelta(days=30), timezone.now()]
+ ordered_date_range = [now - timedelta(days=30), timezone.now()]
received_date_range = [now - timedelta(days=30), timezone.now()]
initial = {
@@ -47,7 +49,7 @@ def prep_list_view(request):
else:
data['form'] = IncomingSearchForm(initial=initial)
- inventory = PurchaseOrderItem.objects.filter(received_at=None)
+ inventory = PurchaseOrderItem.objects.filter(received_at=None).select_related('purchase_order', 'sales_order')
inventory = inventory.exclude(purchase_order__submitted_at=None)
if request.method == 'POST':
@@ -106,7 +108,7 @@ def list_incoming(request, shipment=None, status=""):
item = PurchaseOrderItem.objects.get(pk=i)
try:
item.receive(request.user)
- except ValueError, e:
+ except ValueError as e:
messages.error(request, e)
return redirect(list_incoming)
@@ -228,16 +230,16 @@ def edit_bulk_return(request, pk=None, ship_to=None):
return redirect(edit_bulk_return, ship_to=ship_to)
shipment = Shipment.get_current(request.user, location, ship_to)
-
part_count = shipment.servicepart_set.all().count()
PartFormSet = inlineformset_factory(Shipment,
ServicePart,
form=BulkReturnPartForm,
extra=0,
exclude=[])
+
form = BulkReturnForm(instance=shipment)
formset = PartFormSet(instance=shipment)
-
+
if request.method == "POST":
form = BulkReturnForm(request.POST, instance=shipment)
if form.is_valid():
@@ -246,6 +248,7 @@ def edit_bulk_return(request, pk=None, ship_to=None):
shipment = form.save()
msg = _("Bulk return saved")
formset.save()
+
if "confirm" in request.POST.keys():
try:
shipment.register_bulk_return(request.user)