aboutsummaryrefslogtreecommitdiff
path: root/pyaggr3g470r/views
diff options
context:
space:
mode:
authorCédric Bonhomme <kimble.mandel+bitbucket@gmail.com>2015-08-06 23:36:13 +0200
committerCédric Bonhomme <kimble.mandel+bitbucket@gmail.com>2015-08-06 23:36:13 +0200
commit481d30d4b5d46608a7f0b5cf1122293bc61d3ea5 (patch)
tree4e8690425332988b84e62ebcd334f7bcb30bf89d /pyaggr3g470r/views
parentEnsuere that the arguments is an integer. (diff)
parentfixing bug preventing from bumping error count from api crawler for none admi... (diff)
downloadnewspipe-481d30d4b5d46608a7f0b5cf1122293bc61d3ea5.tar.gz
newspipe-481d30d4b5d46608a7f0b5cf1122293bc61d3ea5.tar.bz2
newspipe-481d30d4b5d46608a7f0b5cf1122293bc61d3ea5.zip
Merged in jaesivsm/pyaggr3g470r (pull request #21)
fixing bug on http crawler and light refact
Diffstat (limited to 'pyaggr3g470r/views')
-rw-r--r--pyaggr3g470r/views/api/article.py3
-rw-r--r--pyaggr3g470r/views/api/common.py16
-rw-r--r--pyaggr3g470r/views/api/feed.py3
-rw-r--r--pyaggr3g470r/views/views.py17
4 files changed, 22 insertions, 17 deletions
diff --git a/pyaggr3g470r/views/api/article.py b/pyaggr3g470r/views/api/article.py
index 03ecdb18..d2969cb0 100644
--- a/pyaggr3g470r/views/api/article.py
+++ b/pyaggr3g470r/views/api/article.py
@@ -51,7 +51,8 @@ class ArticlesChallenge(PyAggAbstractResource):
if key in id_dict:
id_dict[key] = dateutil.parser.parse(id_dict[key])
- return self.wider_controller.challenge(parsed_args['ids'])
+ result = list(self.wider_controller.challenge(parsed_args['ids']))
+ return result or None, 200 if result else 204
g.api.add_resource(ArticleNewAPI, '/article', endpoint='article_new.json')
diff --git a/pyaggr3g470r/views/api/common.py b/pyaggr3g470r/views/api/common.py
index a7068807..acb5dd68 100644
--- a/pyaggr3g470r/views/api/common.py
+++ b/pyaggr3g470r/views/api/common.py
@@ -161,17 +161,17 @@ class PyAggResourceMulti(PyAggAbstractResource):
"""retrieve several objects. filters can be set in the payload on the
different fields of the object, and a limit can be set in there as well
"""
- if 'application/json' not in request.headers.get('Content-Type'):
- raise BadRequest("Content-Type must be application/json")
- limit = 10
try:
limit = request.json.pop('limit', 10)
+ order_by = request.json.pop('order_by', None)
+ query = self.controller.read(**request.json)
except:
- return [res for res in self.controller.read().limit(limit)]
- if not limit:
- return [res for res in self.controller.read(**request.json).all()]
- return [res
- for res in self.controller.read(**request.json).limit(limit)]
+ limit, order_by, query = 10, None, self.controller.read()
+ if order_by:
+ query = query.order_by(order_by)
+ if limit:
+ query = query.limit(limit)
+ return [res for res in query]
def post(self):
"""creating several objects. payload should be a list of dict.
diff --git a/pyaggr3g470r/views/api/feed.py b/pyaggr3g470r/views/api/feed.py
index 7d8cdf38..c80e9a9b 100644
--- a/pyaggr3g470r/views/api/feed.py
+++ b/pyaggr3g470r/views/api/feed.py
@@ -58,7 +58,8 @@ class FetchableFeedAPI(PyAggAbstractResource):
contr = self.wider_controller
else:
contr = self.controller
- return [feed for feed in contr.list_fetchable(**args)]
+ result = [feed for feed in contr.list_fetchable(**args)]
+ return result or None, 200 if result else 204
g.api.add_resource(FeedNewAPI, '/feed', endpoint='feed_new.json')
diff --git a/pyaggr3g470r/views/views.py b/pyaggr3g470r/views/views.py
index 69c2b50b..560bd382 100644
--- a/pyaggr3g470r/views/views.py
+++ b/pyaggr3g470r/views/views.py
@@ -718,8 +718,10 @@ def create_user(user_id=None):
user.activation_key = ""
db.session.add(user)
db.session.commit()
- flash(gettext('User') + ' ' + user.nickname + ' ' + gettext('successfully created.'), 'success')
- return redirect("/admin/edit_user/"+str(user.id))
+ flash("%s %s %s" % (gettext('User'), user.nickname,
+ gettext('successfully created.')),
+ 'success')
+ return redirect(url_for('create_user', user_id=user.id))
else:
return redirect(url_for('create_user'))
@@ -727,11 +729,13 @@ def create_user(user_id=None):
if user_id is not None:
user = User.query.filter(User.id == user_id).first()
form = UserForm(obj=user)
- message = gettext('Edit the user') + ' <i>' + user.nickname + '</i>'
+ message = "%s <i>%s</i>" % (gettext('Edit the user'),
+ user.nickname)
else:
form = UserForm()
message = gettext('Add a new user')
- return render_template('/admin/create_user.html', form=form, message=message)
+ return render_template('/admin/create_user.html',
+ form=form, message=message)
@app.route('/admin/user/<int:user_id>', methods=['GET'])
@login_required
@@ -743,10 +747,9 @@ def user(user_id=None):
user = UserController().get(id=user_id)
if user is not None:
article_contr = ArticleController(user_id)
- return render_template('/admin/user.html', user=user,
+ return render_template('/admin/user.html', user=user, feeds=user.feeds,
article_count=article_contr.count_by_feed(),
- unread_article_count=article_contr.count_by_feed(readed=False),
- )
+ unread_article_count=article_contr.count_by_feed(readed=False))
else:
flash(gettext('This user does not exist.'), 'danger')
bgstack15