various improvements

This commit is contained in:
uwsgi
2017-02-21 18:05:51 +01:00
parent 158ab4236f
commit ae2f61485e
8 changed files with 40 additions and 14 deletions

View File

@@ -2,7 +2,10 @@ from .model import Article
from .model import ArticleSchema
#import flask
from datetime import datetime
from sqlalchemy import func
from sqlalchemy import exc
import json
from src import clogger
from src.sections.model import Section
from src.organizations.model import Organization
from src.database import db_session, read_json
@@ -42,7 +45,13 @@ class ArtController(BaseController):
def get_all_page(self,lim, off):
return Article.query.order_by(Article.published_date.desc()).limit(lim).offset(off).all()
# try:
arts=Article.query.order_by(Article.published_date.desc()).limit(lim).offset(off).all()
# except exc.InvalidRequestError, e:
# clogger.error(e)
# db_session.rollback()
# arts=Article.query.order_by(Article.published_date.desc()).limit(lim).offset(off).all()
return arts
def get_section_page(self,section_id, lim, off):
@@ -52,21 +61,21 @@ class ArtController(BaseController):
def get_organization_page(self,organization_id, lim, off):
sid=db_session.query(Section.id).filter(Section.organization_id==int(organization_id)).all()
sid=map(lambda a:a[0], sid)
articles=Article.query.filter(Article.section_id.in_(sid)).order_by(Article.published_date.desc()).limit(lim).offset(off).all()
articles=db_session.query(Article).filter(Article.section_id.in_(sid)).order_by(Article.published_date.desc()).limit(lim).offset(off).all()
return articles
#
# return Article.query.filter(Article.section_id==section_id).order_by(Article.published_date.desc()).limit(lim).offset(off).all()
def section_count(self,section_id):
return Article.query.filter(Article.section_id==section_id).count()
return db_session.query(func.count(Article.id)).filter(Article.section_id==section_id).scalar()
def organization_count(self,organization_id):
sid=db_session.query(Section.id).filter(Section.organization_id==int(organization_id)).all()
sid=map(lambda a:a[0], sid)
return Article.query.filter(Article.section_id.in_(sid)).count()
return db_session.query(func.count(Article.id)).filter(Article.section_id.in_(sid)).scalar()
def count(self):
return Article.query.count()
return db_session.query(func.count(Article.id)).scalar()
controller=ArtController()