From 482289b36886b208f2c3ab8d2a3d539c4277b359 Mon Sep 17 00:00:00 2001 From: Filipp Lepalaan Date: Fri, 25 Sep 2015 20:03:08 +0300 Subject: Cleanup --- servo/models/order.py | 16 +++++++++++++--- servo/models/queue.py | 3 +++ servo/views/order.py | 4 ++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/servo/models/order.py b/servo/models/order.py index f753bb7..67ab854 100644 --- a/servo/models/order.py +++ b/servo/models/order.py @@ -24,7 +24,9 @@ from servo.models.queue import Queue, Status, QueueStatus class Order(models.Model): - + """ + The Service Order + """ code = models.CharField(max_length=8, unique=True, null=True) url_code = models.CharField(max_length=8, unique=True, null=True) # Device description or something else @@ -130,7 +132,7 @@ class Order(models.Model): (STATE_CLOSED, _("Closed")) ) - state = models.IntegerField(default=0, choices=STATES) + state = models.IntegerField(default=STATE_QUEUED, choices=STATES) status_name = models.CharField(max_length=128, default="") status_started_at = models.DateTimeField(null=True) @@ -139,6 +141,9 @@ class Order(models.Model): api_fields = ('status_name', 'status_description',) + def get_issues(self): + return self.note_set.filter(type=1) + def apply_rules(self): pass @@ -315,10 +320,13 @@ class Order(models.Model): return self.queue or _("Select queue") def get_queue_url(self): + if self.queue is not None: + return self.queue.get_absolute_url() + return reverse("orders-index") def get_queue_title(self): - if self.queue: + if self.queue is not None: return self.queue.title else: return _("Orders") @@ -1116,7 +1124,9 @@ def trigger_device_removed(sender, instance, **kwargs): order = instance.order except Order.DoesNotExist: return # Means the whole order was deleted, not just the device + devices = order.devices.all() + if devices.count() > 0: order.description = devices[0].description else: diff --git a/servo/models/queue.py b/servo/models/queue.py index 422cb3e..05f5f2c 100644 --- a/servo/models/queue.py +++ b/servo/models/queue.py @@ -159,6 +159,9 @@ class Queue(models.Model): def get_admin_url(self): return reverse('admin-edit_queue', args=[self.pk]) + def get_absolute_url(self): + return reverse('orders-list_queue', args=[self.pk]) + def get_order_count(self, max_state=2): count = self.order_set.filter(state__lt=max_state).count() return count if count > 0 else '' diff --git a/servo/views/order.py b/servo/views/order.py index c235432..43277c4 100644 --- a/servo/views/order.py +++ b/servo/views/order.py @@ -804,7 +804,7 @@ def products(request, pk, item_id=None, action='list'): @permission_required('servo.change_order') def list_products(request, pk): - order = Order.objects.get(pk=pk) + order = get_object_or_404(Order, pk=pk) return render(request, "orders/list_products.html", locals()) @@ -828,7 +828,7 @@ def select_customer(request, pk, customer_id): """ Selects a specific customer for this order """ - order = Order.objects.get(pk=pk) + order = get_object_or_404(Order, pk=pk) order.customer_id = customer_id order.save() -- cgit v1.2.3