aboutsummaryrefslogtreecommitdiffstats
path: root/servo
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2015-09-10 14:15:33 +0300
committerFilipp Lepalaan <filipp@mac.com>2015-09-10 14:15:33 +0300
commit46312d1a167d882253d24b0a883fb2378a070e11 (patch)
treef5aff8d2757d4422cbf5321c1fc76ecc0490ab7c /servo
parentbb0ffafe4f040f4e69ecff6624ca73cb3db61bd0 (diff)
downloadServo-46312d1a167d882253d24b0a883fb2378a070e11.tar.gz
Servo-46312d1a167d882253d24b0a883fb2378a070e11.tar.bz2
Servo-46312d1a167d882253d24b0a883fb2378a070e11.zip
Cleanup
Diffstat (limited to 'servo')
-rw-r--r--servo/forms/admin.py7
-rw-r--r--servo/lib/utils.py9
-rw-r--r--servo/management/commands/migratepayments.py44
-rw-r--r--servo/management/commands/migratestatuses.py54
-rw-r--r--servo/management/commands/migratetimezones.py41
-rw-r--r--servo/views/order.py14
6 files changed, 18 insertions, 151 deletions
diff --git a/servo/forms/admin.py b/servo/forms/admin.py
index b0c7c54..6645317 100644
--- a/servo/forms/admin.py
+++ b/servo/forms/admin.py
@@ -552,12 +552,9 @@ class SettingsForm(BaseForm):
d.write(chunk)
if self.cleaned_data.get('gsx_keypass'):
- import subprocess
+ from servo.lib.utils import strip_keypass
keypass = self.cleaned_data['gsx_keypass']
- subprocess.call(['openssl', 'rsa', '-passin',
- 'pass:' + keypass,
- '-in', settings.GSX_KEY,
- '-out', settings.GSX_KEY])
+ strip_keypass(keypass, settings.GSX_KEY, settings.GSX_KEY)
if self.cleaned_data.get('company_logo'):
f = self.cleaned_data['company_logo']
diff --git a/servo/lib/utils.py b/servo/lib/utils.py
index ed77897..bd6a99f 100644
--- a/servo/lib/utils.py
+++ b/servo/lib/utils.py
@@ -29,6 +29,15 @@ from django.db.models import Model
from django.core.serializers.json import DjangoJSONEncoder
+def strip_keypass(keypass, infile, outfile):
+ """
+ Strips a passphrase from a private key
+ """
+ import subprocess
+ keypass = self.cleaned_data['gsx_keypass']
+ subprocess.call(['openssl', 'rsa', '-passin',
+ 'pass:' + keypass, '-in', infile, '-out', outfile])
+
def multiprint(*args):
"""
Emulate JS console.log()
diff --git a/servo/management/commands/migratepayments.py b/servo/management/commands/migratepayments.py
deleted file mode 100644
index 84c5c40..0000000
--- a/servo/management/commands/migratepayments.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2013, First Party Software
-# All rights reserved.
-
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-import logging
-
-from django.core.management.base import BaseCommand, CommandError
-
-from servo.models import Invoice, Payment
-
-
-class Command(BaseCommand):
- help = "Migrate invoice payment info to Payments"
-
- def handle(self, *args, **options):
- Payment.objects.all().delete()
- for i in Invoice.objects.all():
- p = Payment(invoice=i, method=i.payment_method)
- p.created_at = i.paid_at
- p.created_by = i.created_by
- p.amount = i.total_gross
- p.save()
diff --git a/servo/management/commands/migratestatuses.py b/servo/management/commands/migratestatuses.py
deleted file mode 100644
index e6ca601..0000000
--- a/servo/management/commands/migratestatuses.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2013, First Party Software
-# All rights reserved.
-
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-import logging
-
-from django.core.management.base import BaseCommand, CommandError
-
-from servo.models import Event, OrderStatus, Status
-
-
-class Command(BaseCommand):
- help = "Migrate Events to Order Statuses"
-
- def handle(self, *args, **options):
- OrderStatus.objects.all().delete()
-
- for i in Event.objects.filter(action='set_status'):
- if i.content_object is None:
- continue
-
- os = OrderStatus(order=i.content_object)
- os.started_by = i.triggered_by
- os.started_at = i.triggered_at
- os.finished_at = i.handled_at
-
- try:
- os.status = Status.objects.get(title=i.description)
- except Status.DoesNotExist:
- continue
-
- os.save()
diff --git a/servo/management/commands/migratetimezones.py b/servo/management/commands/migratetimezones.py
deleted file mode 100644
index 7eb63d1..0000000
--- a/servo/management/commands/migratetimezones.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2013, First Party Software
-# All rights reserved.
-
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-import logging
-
-from django.core.management.base import BaseCommand, CommandError
-
-from servo.models import User
-
-
-class Command(BaseCommand):
- help = "Migrate location timezones to user timezones"
-
- def handle(self, *args, **options):
- for i in User.objects.all():
- if i.location:
- i.timezone = i.location.timezone
- i.save()
diff --git a/servo/views/order.py b/servo/views/order.py
index 27ee5a3..ade41ac 100644
--- a/servo/views/order.py
+++ b/servo/views/order.py
@@ -315,8 +315,8 @@ def list_orders(request):
@permission_required("servo.change_order")
def toggle_tag(request, order_id, tag_id):
- tag = Tag.objects.get(pk=tag_id)
- order = Order.objects.get(pk=order_id)
+ tag = get_object_or_404(Tag, pk=tag_id)
+ order = get_object_or_404(Order, pk=order_id)
if tag not in order.tags.all():
order.add_tag(tag)
@@ -331,7 +331,7 @@ def toggle_task(request, order_id, item_id):
"""
Toggles a given Check List item in this order
"""
- checklist_item = ChecklistItem.objects.get(pk=item_id)
+ checklist_item = get_object_or_404(ChecklistItem, pk=item_id)
try:
item = ChecklistItemValue.objects.get(order_id=order_id, item=checklist_item)
@@ -371,7 +371,7 @@ def repair(request, order_id, repair_id):
@permission_required("servo.change_order")
def complete_repair(request, order_id, repair_id):
- repair = Repair.objects.get(pk=repair_id)
+ repair = get_object_or_404(Repair, pk=repair_id)
if request.method == 'POST':
try:
repair.close(request.user)
@@ -463,7 +463,7 @@ def toggle_follow(request, order_id):
def toggle_flagged(request, pk):
- order = Order.objects.get(pk=pk)
+ order = get_object_or_404(Order, pk=pk)
t = FlaggedItem(content_object=order, flagged_by=request.user)
t.save()
@@ -474,7 +474,7 @@ 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 = User.objects.get(pk=user_id)
+ user = get_object_or_404(User, pk=user_id)
try:
order.remove_follower(user)
@@ -607,7 +607,7 @@ def add_device(request, pk, device_id=None, sn=None):
try:
device = Device.from_gsx(sn)
device.save()
- except Exception, e:
+ except Exception as e:
messages.error(request, e)
return redirect(order)