aboutsummaryrefslogtreecommitdiffstats
path: root/servo
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2015-09-10 16:19:54 +0300
committerFilipp Lepalaan <filipp@mac.com>2015-09-10 16:19:54 +0300
commit5ae2336abc50f6874e5c0df785d3dbe5016d459d (patch)
treeb308194a6a2ed90a8f68cb5a0ba2006fefe706b0 /servo
parent7b6774fba294988693ea227717dc789db898072c (diff)
downloadServo-5ae2336abc50f6874e5c0df785d3dbe5016d459d.tar.gz
Servo-5ae2336abc50f6874e5c0df785d3dbe5016d459d.tar.bz2
Servo-5ae2336abc50f6874e5c0df785d3dbe5016d459d.zip
Fix MultipleObjectsReturned exception
We cannot enforce SN uniqueness so let’s just use the first match when creating order with device SN
Diffstat (limited to 'servo')
-rw-r--r--servo/models/order.py6
-rwxr-xr-xservo/templates/orders/devices.html5
-rw-r--r--servo/views/gsx.py4
3 files changed, 10 insertions, 5 deletions
diff --git a/servo/models/order.py b/servo/models/order.py
index 62333b5..d968068 100644
--- a/servo/models/order.py
+++ b/servo/models/order.py
@@ -268,9 +268,9 @@ class Order(models.Model):
Adds device to order using serial number
"""
sn = sn.upper()
- try:
- device = Device.objects.get(sn=sn)
- except Device.DoesNotExist:
+ device = Device.objects.filter(sn=sn).first()
+
+ if device is None:
device = Device.from_gsx(sn)
device.save()
diff --git a/servo/templates/orders/devices.html b/servo/templates/orders/devices.html
index bab9689..fb98862 100755
--- a/servo/templates/orders/devices.html
+++ b/servo/templates/orders/devices.html
@@ -87,6 +87,11 @@
<li class="disabled"><a href="#">{% trans "Create Onsite Repair" %}</a></li>
{% endif %}
{% if order.can_create_carryin and device.can_create_carryin and 0 %}
+ <li><a href="{% url 'repairs-create_repair' order.id device.id 'WH' %}">{% trans "Create Mail-In Repair" %}</a></li>
+ {% else %}
+ <li class="disabled"><a href="#">{% trans "Create Mail-In Repair" %}</a></li>
+ {% endif %}
+ {% if order.can_create_carryin and device.can_create_carryin and 0 %}
<li><a href="{% url 'repairs-create_repair' order.id device.id 'RR' %}">{% trans "Create Whole-Unit Exchange" %}</a></li>
{% else %}
<li class="disabled"><a href="#">{% trans "Create Whole-Unit Exchange" %}</a></li>
diff --git a/servo/views/gsx.py b/servo/views/gsx.py
index 0269462..908e9f5 100644
--- a/servo/views/gsx.py
+++ b/servo/views/gsx.py
@@ -75,12 +75,12 @@ def import_repair(request, order_pk, device_pk):
form = ImportForm(request.POST)
if form.is_valid():
confirmation = form.cleaned_data['confirmation']
-
try:
repair = Repair.create_from_gsx(confirmation,
order,
device,
request.user)
+ messages.success(request, _('GSX repair %s imported successfully' % confirmation))
return redirect(repair)
except Exception as e:
messages.error(request, e)
@@ -100,7 +100,7 @@ def return_label(request, repair, part):
repair.connect_gsx(request.user)
label_data = repair.get_return_label(part)
return HttpResponse(label_data, content_type="application/pdf")
- except gsxws.GsxError, e:
+ except gsxws.GsxError as e:
messages.error(request, e)
return redirect(repair.order)