diff --git a/ereuse_devicehub/inventory/forms.py b/ereuse_devicehub/inventory/forms.py index d028495e..841dcb15 100644 --- a/ereuse_devicehub/inventory/forms.py +++ b/ereuse_devicehub/inventory/forms.py @@ -1,8 +1,6 @@ import copy import json from json.decoder import JSONDecodeError -from requests.exceptions import ConnectionError - from boltons.urlutils import URL from flask import g, request from flask_wtf import FlaskForm @@ -446,11 +444,7 @@ class TagUnnamedForm(FlaskForm): def save(self): num = self.amount.data - try: - tags_id, _ = g.tag_provider.post('/', {}, query=[('num', num)]) - except ConnectionError: - pass - return [] + tags_id, _ = g.tag_provider.post('/', {}, query=[('num', num)]) tags = [Tag(id=tag_id, provider=g.inventory.tag_provider) for tag_id in tags_id] db.session.add_all(tags) db.session.commit() diff --git a/ereuse_devicehub/inventory/views.py b/ereuse_devicehub/inventory/views.py index 2b5c6161..c0ac0117 100644 --- a/ereuse_devicehub/inventory/views.py +++ b/ereuse_devicehub/inventory/views.py @@ -1,13 +1,15 @@ import csv +import logging from io import StringIO import flask import flask_weasyprint -from flask import Blueprint, g, make_response, request, url_for +from flask import Blueprint, g, make_response, request, url_for, app from flask.views import View from flask_login import current_user, login_required from werkzeug.exceptions import NotFound from sqlalchemy import or_ +from requests.exceptions import ConnectionError from ereuse_devicehub import messages from ereuse_devicehub.inventory.forms import ( @@ -34,6 +36,8 @@ from ereuse_devicehub.resources.tag.model import Tag # TODO(@slamora): rename base 'inventory.devices' --> 'inventory' devices = Blueprint('inventory.devices', __name__, url_prefix='/inventory') +logger = logging.getLogger(__name__) + class DeviceListMix(View): decorators = [login_required] @@ -287,10 +291,14 @@ class TagAddUnnamedView(View): context = {'page_title': 'New Unnamed Tag', 'lots': lots} form = TagUnnamedForm() if form.validate_on_submit(): - tags = form.save() - if not tags: - msg = 'Sorry, the communication with the tag server is not possible now!' + try: + form.save() + except ConnectionError as e: + logger.error("Error while trying to connect to tag server: {}".format(e)) + msg = ("Sorry, we cannot create the unnamed tags requested because " + "some error happens while connecting to the tag server!") messages.error(msg) + next_url = url_for('inventory.devices.taglist') return flask.redirect(next_url)