예제 #1
0
    def get(self):
        db_session = sql_db_engine.create_session()
        pools = OrmPooldbModel(db_session).get_query().filter(
            OrmPooldbModel.PooldbMapper.USER_SUBMITTED == 'yes'
        ).all()

        genom_count = 0
        if pools:
            query = OrmGdbModel(db_session).get_query()
            query = query.filter(
                OrmGdbModel.GdbMapper.REVIEWEDBY == None,
                OrmGdbModel.GdbMapper.POOL_ID == pools[0].ID
            )
            genom_count = query.count()

        form = SubmitForm()

        rendered = render_template(
            'submitView.html',
            gen_num=genom_count,
            form=form
        )

        db_session.commit()
        db_session.close()
        return Response(rendered, mimetype='text/html')
예제 #2
0
파일: common.py 프로젝트: mazurekm/miob
def get_genoms_data(session, cond, pagination=None):

    query = OrmGdbModel(session).get_query()
    query = query.join(OrmPooldbModel.PooldbMapper)
    query = query.join(OrmPerformancedbModel.PerformancedbMapper)

    if 'pools[]' in cond:
        query = query.filter(OrmGdbModel.GdbMapper.POOL_ID.in_(cond['pools[]']))

    if 'search' in cond and 'columns[]' in cond:
        complex_or = None
        for el in cond['columns[]']:
            if complex_or is None:
                complex_or = getattr(OrmGdbModel.GdbMapper, el).like(
                    '%{0}%'.format(cond['search']))
            else:
                complex_or = or_(
                    complex_or, getattr(OrmGdbModel.GdbMapper, el).like(
                        '%{0}%'.format(cond['search']))
                )
        if complex_or is not None:
            query = query.filter(complex_or)

    if pagination is not None:
        pagination.num_of_pages = query.count()
        query = pagination.paginate(query)

    if 'sort' in cond:
        if hasattr(OrmGdbModel.GdbMapper, cond['sort']):
            query = query.from_self().join(OrmPooldbModel.PooldbMapper).order_by(
                getattr(OrmGdbModel.GdbMapper, cond['sort'])
            )
        elif hasattr(OrmPooldbModel.PooldbMapper, cond['sort']):
            query = query.from_self().join(OrmPooldbModel.PooldbMapper).order_by(
                getattr(OrmPooldbModel.PooldbMapper, cond['sort'])
            )
        elif hasattr(OrmPerformancedbModel.PerformancedbMapper, cond['sort']):
            query = query.from_self().join(
                OrmPerformancedbModel.PerformancedbMapper
            ).filter(
                OrmPerformancedbModel.PerformancedbMapper.ENV_ID == cond['env_id']
            ).order_by(
                getattr(OrmPerformancedbModel.PerformancedbMapper, cond['sort'])
            )

    data = query.all()
    rows = list()

    for row in data:

        query = OrmPerformancedbModel(session).get_query().join(
            OrmPerformancedbModel.PerformancedbMapper.envdb
        ).filter(
            OrmPerformancedbModel.PerformancedbMapper.GENO_ID == row.ID
        ).order_by(OrmEnvdbModel.EnvdbMapper.NAME)

        tmp_perf = []
        for perf in query.all():
            tmp_perf.append(perf.PERFORMANCE)

        rows.append({
            'id': row.ID,
            'name': row.NAME,
            'gene_pool': row.pooldb.POOLNAME,
            'author': row.AUTHORNAME,
            'description': row.SHORTINFO,
            'size': {
                    'parts': row.COUNT_P,
                    'joints': row.COUNT_J,
                    'neurons': row.COUNT_N,
                    'neural_connections': row.COUNT_C
                    },
            'geno_html': Markup(row.GENO_HTML),
            'geno_html_short': Markup(row.GENO_HTML_SHORT),
            'performance': tmp_perf,
            'genotype': row.GENO,
            'origin': row.ORIGIN,
            'date_submitted': '' if row.DATE is None else row.DATE.isoformat(),
            'origin_story': row.ORIGINSTORY,
            'notes': row.NOTES
        })

    res = dict()
    env_names = OrmEnvdbModel(session).get_query().order_by(
        OrmEnvdbModel.EnvdbMapper.NAME
    ).all()
    res['env_names'] = [el.NAME for el in env_names]
    res['genotypes'] = rows
    return res