diff --git a/ereuse_devicehub/inventory/forms.py b/ereuse_devicehub/inventory/forms.py index 1118877c..27069e56 100644 --- a/ereuse_devicehub/inventory/forms.py +++ b/ereuse_devicehub/inventory/forms.py @@ -1,26 +1,46 @@ import copy import json from json.decoder import JSONDecodeError + from boltons.urlutils import URL from flask import g, request from flask_wtf import FlaskForm +from sqlalchemy import or_ from sqlalchemy.util import OrderedSet from wtforms import ( - BooleanField, DateField, FileField, FloatField, Form, HiddenField, - IntegerField, MultipleFileField, SelectField, StringField, TextAreaField, - URLField, validators) + BooleanField, + DateField, + FileField, + FloatField, + Form, + HiddenField, + IntegerField, + MultipleFileField, + SelectField, + StringField, + TextAreaField, + URLField, + validators, +) from wtforms.fields import FormField from ereuse_devicehub.db import db -from ereuse_devicehub.resources.action.models import RateComputer, Snapshot +from ereuse_devicehub.resources.action.models import RateComputer, Snapshot, Trade from ereuse_devicehub.resources.action.rate.v1_0 import CannotRate -from ereuse_devicehub.resources.action.schemas import \ - Snapshot as SnapshotSchema -from ereuse_devicehub.resources.action.views.snapshot import ( - move_json, save_json) +from ereuse_devicehub.resources.action.schemas import Snapshot as SnapshotSchema +from ereuse_devicehub.resources.action.views.snapshot import move_json, save_json from ereuse_devicehub.resources.device.models import ( - SAI, Cellphone, Computer, Device, Keyboard, MemoryCardReader, Monitor, - Mouse, Smartphone, Tablet) + SAI, + Cellphone, + Computer, + Device, + Keyboard, + MemoryCardReader, + Monitor, + Mouse, + Smartphone, + Tablet, +) from ereuse_devicehub.resources.device.sync import Sync from ereuse_devicehub.resources.documents.models import DataWipeDocument from ereuse_devicehub.resources.enums import Severity, SnapshotSoftware @@ -30,8 +50,6 @@ from ereuse_devicehub.resources.tag.model import Tag from ereuse_devicehub.resources.tradedocument.models import TradeDocument from ereuse_devicehub.resources.user.exceptions import InsufficientPermission from ereuse_devicehub.resources.user.models import User -from ereuse_devicehub.resources.action.models import Trade -from sqlalchemy import or_ class LotDeviceForm(FlaskForm): @@ -47,9 +65,14 @@ class LotDeviceForm(FlaskForm): self._lot = ( Lot.query.outerjoin(Trade) .filter(Lot.id == self.lot.data) - .filter(or_(Trade.user_from == g.user, - Trade.user_to == g.user, - Lot.owner_id == g.user.id)).one() + .filter( + or_( + Trade.user_from == g.user, + Trade.user_to == g.user, + Lot.owner_id == g.user.id, + ) + ) + .one() ) devices = set(self.devices.data.split(",")) @@ -468,11 +491,17 @@ class TagDeviceForm(FlaskForm): super().__init__(*args, **kwargs) if self.delete: - tags = Tag.query.filter(Tag.owner_id == g.user.id).filter_by( - device_id=self.device_id - ).order_by(Tag.id) + tags = ( + Tag.query.filter(Tag.owner_id == g.user.id) + .filter_by(device_id=self.device_id) + .order_by(Tag.id) + ) else: - tags = Tag.query.filter(Tag.owner_id == g.user.id).filter_by(device_id=None).order_by(Tag.id) + tags = ( + Tag.query.filter(Tag.owner_id == g.user.id) + .filter_by(device_id=None) + .order_by(Tag.id) + ) self.tag.choices = [(tag.id, tag.id) for tag in tags] @@ -731,9 +760,14 @@ class TradeForm(NewActionForm): self._lot = ( Lot.query.outerjoin(Trade) .filter(Lot.id == self.lot.data) - .filter(or_(Trade.user_from == g.user, - Trade.user_to == g.user, - Lot.owner_id == g.user.id)).one() + .filter( + or_( + Trade.user_from == g.user, + Trade.user_to == g.user, + Lot.owner_id == g.user.id, + ) + ) + .one() ) def validate(self, extra_validators=None): diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index f7ecdc69..f924cd90 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -41,7 +41,6 @@ logger = logging.getLogger(__name__) class GenericMixView(View): - def get_lots(self): return ( Lot.query.outerjoin(Trade) @@ -246,7 +245,12 @@ class UploadSnapshotView(GenericMixView): def dispatch_request(self, lot_id=None): lots = self.get_lots() form = UploadSnapshotForm() - context = {'page_title': 'Upload Snapshot', 'lots': lots, 'form': form, 'lot_id': lot_id} + context = { + 'page_title': 'Upload Snapshot', + 'lots': lots, + 'form': form, + 'lot_id': lot_id, + } if form.validate_on_submit(): snapshot = form.save(commit=False) # import pdb; pdb.set_trace() @@ -267,7 +271,12 @@ class DeviceCreateView(GenericMixView): def dispatch_request(self, lot_id=None): lots = self.get_lots() form = NewDeviceForm() - context = {'page_title': 'New Device', 'lots': lots, 'form': form, 'lot_id': lot_id} + context = { + 'page_title': 'New Device', + 'lots': lots, + 'form': form, + 'lot_id': lot_id, + } if form.validate_on_submit(): snapshot = form.save(commit=False) next_url = url_for('inventory.devices.devicelist') @@ -278,9 +287,7 @@ class DeviceCreateView(GenericMixView): db.session.add(lot) db.session.commit() - messages.success( - 'Device "{}" created successfully!'.format(form.type.data) - ) + messages.success('Device "{}" created successfully!'.format(form.type.data)) return flask.redirect(next_url) return flask.render_template(self.template_name, **context) @@ -669,11 +676,13 @@ devices.add_url_rule( '/upload-snapshot/', view_func=UploadSnapshotView.as_view('upload_snapshot') ) devices.add_url_rule( - '/lot//upload-snapshot/', view_func=UploadSnapshotView.as_view('lot_upload_snapshot') + '/lot//upload-snapshot/', + view_func=UploadSnapshotView.as_view('lot_upload_snapshot'), ) devices.add_url_rule('/device/add/', view_func=DeviceCreateView.as_view('device_add')) devices.add_url_rule( - '/lot//device/add/', view_func=DeviceCreateView.as_view('lot_device_add') + '/lot//device/add/', + view_func=DeviceCreateView.as_view('lot_device_add'), ) devices.add_url_rule('/tag/', view_func=TagListView.as_view('taglist')) devices.add_url_rule('/tag/add/', view_func=TagAddView.as_view('tag_add'))