def plan_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('tanggal', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('approval_level'))

        query = DBSession.query(ProductPlan)
        rowTable = DataTables(req, ProductPlan, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'grid1':
        cari = 'cari' in params and params['cari'] or ''
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('tanggal', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('approval_level'))

        query = DBSession.query(ProductPlan).filter(
            ProductPlan.unit_id == Unit.id,
            or_(
                ProductPlan.nama.ilike('%%%s%%' % cari),
                ProductPlan.kode.ilike('%%%s%%' % cari),
                Unit.nama.ilike('%%%s%%' % cari),
            ))
        rowTable = DataTables(req, ProductPlan, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'hon_plan_approval':
        term = 'term' in params and params['term'] or ''
        unit = 'unit_id' in params and params['unit_id'] or ''
        rows = DBSession.query(ProductPlan.id, ProductPlan.kode,
                               ProductPlan.nama).filter(
                                   ProductPlan.nama.ilike('%%%s%%' % term),
                                   ProductPlan.unit_id == unit,
                                   ProductPlan.approval_level == 0,
                                   ProductPlan.disabled == 0).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[2]
            d['kode'] = k[1]
            d['nama'] = k[2]
            r.append(d)
        return r

    elif url_dict['act'] == 'hok_plan_approval':
        term = 'term' in params and params['term'] or ''
        unit = 'unit_id' in params and params['unit_id'] or ''
        rows = DBSession.query(ProductPlan.id, ProductPlan.kode,
                               ProductPlan.nama).filter(
                                   ProductPlan.kode.ilike('%%%s%%' % term),
                                   ProductPlan.unit_id == unit,
                                   ProductPlan.approval_level == 0,
                                   ProductPlan.disabled == 0).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['kode'] = k[1]
            d['nama'] = k[2]
            r.append(d)
        return r
Beispiel #2
0
def view_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        pk_id = 'id' in params and params['id'] and int(params['id']) or 0
        if url_dict['act'] == 'grid':
            # defining columns
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('unit_kd'))
            columns.append(ColumnDT('kode'))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('rekening_kd'))
            columns.append(ColumnDT('rekening_nm'))
            columns.append(ColumnDT('tgl_trans', filter=_DTstrftime))
            columns.append(ColumnDT('pokok', filter=_DTnumber_format))
            columns.append(ColumnDT('denda', filter=_DTnumber_format))
            columns.append(ColumnDT('bunga', filter=_DTnumber_format))
            columns.append(ColumnDT('posted'))

            query = DBSession.query(
                ARPaymentPbb.id,
                ARPaymentPbb.unit_kd,
                ARPaymentPbb.kode,
                ARPaymentPbb.nama,
                ARPaymentPbb.rekening_kd,
                ARPaymentPbb.rekening_nm,
                ARPaymentPbb.pokok,
                ARPaymentPbb.denda,
                ARPaymentPbb.bunga,
                ARPaymentPbb.posted,
                ARPaymentPbb.tgl_trans,
                ARPaymentPbb.tgl_validasi,
            ).filter(
                ARPaymentPbb.tahun == ses['tahun'],
                between(ARPaymentPbb.tgl_trans, ses['tanggal'],
                        ses['tanggal_to']),
                ARPaymentPbb.posted == ses['posted'])
            #).order_by(ARPaymentPbb.kode.asc()
            #)
            rowTable = DataTables(req, ARPaymentPbb, query, columns)
            return rowTable.output_result()
Beispiel #3
0
    def test_with_filter_ok(self):
        """Return column with a specific filter."""
        col = ColumnDT('id', filter=lambda x: 'HANDLE %s' % x)

        assert col.filter(col.column_name) == 'HANDLE id'
Beispiel #4
0
def view_act(request):
    req      = request
    params   = req.params
    url_dict = req.matchdict
    user     = req.user
	
    if url_dict['act']=='grid':
        u = request.user.id
        a = DBSession.query(UserGroup.group_id).filter(UserGroup.user_id==u).first()
        b = '%s' % a
        c = int(b)

        x = DBSession.query(UserUnit.unit_id).filter(UserUnit.user_id==u).first()
        if x=='None' or not x: #Untuk BUD
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('kode'))
            columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('units.nama'))
            columns.append(ColumnDT('jumlah',  filter=_DTnumberformat))
            
            query = DBSession.query(ARSts).\
                                    join(Unit)
                              
            rowTable = DataTables(req, ARSts, query, columns)
            return rowTable.output_result()
			
        y = '%s' % x
        z = int(y)        
        
        if c == 2: #Untuk Bendahara
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('kode'))
            columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('units.nama'))
            columns.append(ColumnDT('jumlah',  filter=_DTnumberformat))
            
            query = DBSession.query(ARSts
			                ).join(Unit
							).filter(ARSts.unit_id==x
							)
                              
            rowTable = DataTables(req, ARSts, query, columns)
            return rowTable.output_result()
            
        else: #Untuk BUD
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('kode'))
            columns.append(ColumnDT('tgl_sts', filter=_DTstrftime))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('units.nama'))
            columns.append(ColumnDT('jumlah',  filter=_DTnumberformat))
            
            query = DBSession.query(ARSts).\
                                    join(Unit)
                              
            rowTable = DataTables(req, ARSts, query, columns)
            return rowTable.output_result()
Beispiel #5
0
def vuln_list_json_route():
    """list vulns, data endpoint"""

    columns = [
        ColumnDT(literal_column('1'),
                 mData='_select',
                 search_method='none',
                 global_search=False),
        ColumnDT(Vuln.id, mData='id'),
        ColumnDT(Host.id, mData='host_id'),
        ColumnDT(Host.address, mData='host_address'),
        ColumnDT(Host.hostname, mData='host_hostname'),
        ColumnDT(Service.proto, mData='service_proto'),
        ColumnDT(Service.port, mData='service_port'),
        ColumnDT(func.concat_ws('/', Service.port, Service.proto),
                 mData='service'),
        ColumnDT(Vuln.name, mData='name'),
        ColumnDT(Vuln.xtype, mData='xtype'),
        ColumnDT(Vuln.severity, mData='severity'),
        ColumnDT(Vuln.refs, mData='refs'),
        ColumnDT(Vuln.tags, mData='tags'),
        ColumnDT(Vuln.comment, mData='comment'),
        ColumnDT(literal_column('1'),
                 mData='_buttons',
                 search_method='none',
                 global_search=False)
    ]
    query = db.session.query().select_from(Vuln).outerjoin(
        Host, Vuln.host_id == Host.id).outerjoin(Service,
                                                 Vuln.service_id == Service.id)
    if 'filter' in request.values:
        query = apply_filters(query,
                              filter_parser.parse(
                                  request.values.get('filter')),
                              do_auto_join=False)

    vulns = DataTables(request.values.to_dict(), query,
                       columns).output_result()
    return Response(json.dumps(vulns, cls=SnerJSONEncoder),
                    mimetype='application/json')
Beispiel #6
0
    def gaji_act(self):
        ses = self.request.session
        req = self.request
        params = req.params
        url_dict = req.matchdict

        if url_dict['act'] == 'grid':
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('nip'))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('gaji_kotor', filter=self._number_format))
            columns.append(ColumnDT('potongan', filter=self._number_format))
            columns.append(ColumnDT('gaji_bersih', filter=self._number_format))
            query = DBSession.query(GajiPegawai).filter(
                GajiPegawai.tahun == ses['tahun'],
                GajiPegawai.bulan == ses['bulan'])
            rows = UserUnitModel.get_filtered(self.request)
            if rows and rows.sub_unit:
                query = query.filter(
                    GajiPegawai.unitkd.like('%s%%' % ses['unit_kd']))
            else:
                query = query.filter(GajiPegawai.unitkd == ses['unit_kd'])

            rowTable = DataTables(req, GajiPegawai, query, columns)
            return rowTable.output_result()

        elif url_dict['act'] == 'headofnip':
            nip = 'term' in params and params['term'] or ''
            rows = DBSession.query(
                GajiPegawai.id, GajiPegawai.nip, GajiPegawai.nama,
                GajiPegawai.gaji_bersih).filter(
                    GajiPegawai.tahun == ses['tahun'],
                    GajiPegawai.bulan == ses['bulan'],
                    GajiPegawai.unitkd == ses['unit_kd'],
                    GajiPegawai.nip.ilike('%s%%' % nip)).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[1]
                d['nip'] = k[1]
                d['nama'] = k[2]
                d['gaji_bersih'] = k[3]
                r.append(d)
            return r
        elif url_dict['act'] == 'import':
            self.d['msg'] = 'Gagal Import Gagal'
            engine_mssql = create_engine(
                'mssql+pyodbc:///?odbc_connect={0}'.format(
                    urllib.quote_plus(EngineMssql[0])))

            sqlselect = text("""SELECT *
                FROM pegawai_gaji
                WHERE tahun=:tahun AND bulan=:bulan AND jenis=:jenis
                ORDER by nip""")
            srcs = engine_mssql.execute(sqlselect,
                                        tahun=self.session['tahun'],
                                        bulan=self.session['bulan'],
                                        jenis=0).all()
            for src in srcs.fetchall():
                gajiPg = GajiPegawai()
                gajiPg.from_dict(src)
                DBSession.add(gajiPg)
                DBSession.flush()
            DBSession.commit()

            return self.d
Beispiel #7
0
def view_act(request):
    req = request
    params = req.params
    url_dict = req.matchdict
    user = req.user
    if url_dict['act'] == 'grid':
        awal = 'awal' in request.GET and request.GET['awal'] or datetime.now(
        ).strftime('%Y-%m-%d')
        akhir = 'akhir' in request.GET and request.GET[
            'akhir'] or datetime.now().strftime('%Y-%m-%d')
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('wp_nama'))
        columns.append(ColumnDT('op_nama'))
        columns.append(ColumnDT('rek_nama'))
        columns.append(ColumnDT('tgl_terima', filter=_DTstrftime))
        columns.append(ColumnDT('terutang', filter=_DTnumberformat))
        columns.append(ColumnDT('denda', filter=_DTnumberformat))
        columns.append(ColumnDT('bunga', filter=_DTnumberformat))
        columns.append(ColumnDT('jumlah', filter=_DTnumberformat))
        columns.append(ColumnDT('status_invoice'))
        query = DBSession.query(ARTbp)\
                         .filter(ARTbp.tgl_terima.between(awal,akhir))
        #TODO Filter BY SKPD
        rowTable = DataTables(req.GET, ARTbp, query, columns)
        return rowTable.output_result()
Beispiel #8
0
def view_act(request):
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('level_id'))
        columns.append(ColumnDT('is_summary'))
        columns.append(ColumnDT('status', filter=_DTactive))
        query = DBSession.query(Unit)
        rowTable = DataTables(req.GET, Unit, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'hon':
        term = 'term' in params and params['term'] or ''
        print dir(req.user)
        qry = DBSession.query(Unit.id, Unit.nama)
        qry = qry.filter(  #Unit.is_summary==0,
            Unit.nama.ilike('%%%s%%' % term))
        if req.user.user_name != 'admin':
            qry = qry.join(UserUnit)
            qry = qry.filter(UserUnit.user_id == req.user.id)

        rows = qry.all()
        # IF USER IS LOGGED IN AND IS SKPD=TRUE
        # ADD FILTER ONLY HIS DATA
        #
        r = []
        for k in rows:
            if len(rows) == 1:
                req.session['a_unit_id'] = k[0]
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['nama'] = k[1]
            r.append(d)
        return r

    elif url_dict['act'] == 'hon_user':
        term = 'term' in params and params['term'] or ''
        qry = DBSession.query(Unit.id, Unit.nama)
        rows = qry.filter(  #Unit.is_summary==0,
            Unit.nama.ilike('%%%s%%' % term)).all()
        # IF USER IS LOGGED IN AND IS SKPD=TRUE
        # ADD FILTER ONLY HIS DATA
        #
        r = []
        for k in rows:
            if len(rows) == 1:
                req.session['a_unit_id'] = k[0]
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['nama'] = k[1]
            r.append(d)
        return r

    elif url_dict['act'] == 'hon_reg':
        term = 'term' in params and params['term'] or ''
        unit_id = 'unit_id' in params and params['unit_id'] or 0
        rows = DBSession.query(Unit.id, Unit.nama).filter(
            Unit.id == unit_id, Unit.nama.ilike('%%%s%%' % term)).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['nama'] = k[1]
            r.append(d)
        return r

    elif url_dict['act'] == 'hon_ob':
        term = 'term' in params and params['term'] or ''
        unit_id = 'unit_id' in params and params['unit_id'] or 0
        rows = DBSession.query(Unit.id, Unit.nama).filter(
            Unit.id == unit_id, Unit.nama.ilike('%%%s%%' % term)).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['nama'] = k[1]
            r.append(d)
        return r

    elif url_dict['act'] == 'hon_fast':
        term = 'term' in params and params['term'] or ''
        rows = DBSession.query(Unit.id, Unit.nama).filter(
            Unit.nama.ilike('%%%s%%' % term), Unit.level_id == 3).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['nama'] = k[1]
            r.append(d)
        return r

    elif url_dict['act'] == 'hon_wp':
        term = 'term' in params and params['term'] or ''
        u = request.user.id
        a = DBSession.query(
            UserGroup.group_id).filter(UserGroup.user_id == u).first()
        b = '%s' % a
        c = int(b)
        if c == 1:  #Untuk login WP
            x = DBSession.query(
                UserUnit.unit_id).filter(UserUnit.user_id == u).first()
            if x == 'None' or not x:
                return {'success': False}

            y = '%s' % x
            z = int(y)
            rows = DBSession.query(Unit.id, Unit.nama).filter(
                Unit.id == z, Unit.nama.ilike('%%%s%%' % term),
                Unit.level_id == 3).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[1]
                d['nama'] = k[1]
                r.append(d)
            return r

        elif c == 2:  #Untuk login Bendahara
            x = DBSession.query(
                UserUnit.unit_id).filter(UserUnit.user_id == u).first()
            if x == 'None' or not x:
                return {'success': False}

            y = '%s' % x
            z = int(y)
            rows = DBSession.query(Unit.id, Unit.nama).filter(
                Unit.id == z, Unit.nama.ilike('%%%s%%' % term),
                Unit.level_id == 3).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[1]
                d['nama'] = k[1]
                r.append(d)
            return r

        elif c == 3:  #Untuk login Admin
            rows = DBSession.query(Unit.id, Unit.nama).filter(
                Unit.nama.ilike('%%%s%%' % term), Unit.level_id == 3).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[1]
                d['nama'] = k[1]
                r.append(d)
            return r

        else:  #Untuk login BUD
            rows = DBSession.query(Unit.id, Unit.nama).filter(
                Unit.nama.ilike('%%%s%%' % term), Unit.level_id == 3).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[1]
                d['nama'] = k[1]
                r.append(d)
            return r
Beispiel #9
0
    def gaji_potongan_act(self):
        ses = self.request.session
        req = self.request
        params = req.params
        url_dict = req.matchdict
        
        if url_dict['act']=='grid':
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('nip'))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('gaji_bersih',  filter=self._number_format))
            columns.append(ColumnDT('amount_01',  filter=self._number_format))
            columns.append(ColumnDT('amount_02',  filter=self._number_format))
            columns.append(ColumnDT('amount_03',  filter=self._number_format))
            columns.append(ColumnDT('amount_04',  filter=self._number_format))
            columns.append(ColumnDT('amount_05',  filter=self._number_format))
            columns.append(ColumnDT('amount_06',  filter=self._number_format))
            columns.append(ColumnDT('amount_07',  filter=self._number_format))
            columns.append(ColumnDT('amount_08',  filter=self._number_format))
            columns.append(ColumnDT('amount_09',  filter=self._number_format))
            columns.append(ColumnDT('amount_10',  filter=self._number_format))
            columns.append(ColumnDT('amount_11',  filter=self._number_format))
            columns.append(ColumnDT('amount_12',  filter=self._number_format))
            query = DBSession.query(GajiPegawai.id, GajiPegawai.nip, GajiPegawai.nama, GajiPegawai.gaji_bersih,
                       GajiPotongan.amount_01, GajiPotongan.amount_02, GajiPotongan.amount_03,
                       GajiPotongan.amount_04, GajiPotongan.amount_05, GajiPotongan.amount_06,
                       GajiPotongan.amount_07, GajiPotongan.amount_08, GajiPotongan.amount_09,
                       GajiPotongan.amount_10, GajiPotongan.amount_11, GajiPotongan.amount_12,
                       ).join(GajiPotongan).filter(
                      GajiPegawai.tahun == ses['tahun'],
                      GajiPegawai.bulan == ses['bulan'],
                    )
            rows = UserUnitModel.get_filtered(self.request)
            if rows and rows.sub_unit:
                query = query.filter(GajiPegawai.unitkd.like( '%s%%' % self.request.session['unit_kd']))
            else:
                query = query.filter(GajiPegawai.unitkd== self.request.session['unit_kd'])
            rowTable = DataTables(req, GajiPegawai, query, columns)
            return rowTable.output_result()
        elif url_dict['act']=='upload':
            filename = self.request.POST['files'].filename
            input_file = self.request.POST['files'].file
            name, ext = os.path.splitext(filename)
            if ext not in ('.xls','.csv','.xlsx'):
                return dict(success=False, notes='File extension not allowed.')

            file_path = os.path.join('/tmp', '%s%s' % (uuid.uuid4(),ext))

            temp_file_path = file_path + '~'
            output_file = open(temp_file_path, 'wb')

            input_file.seek(0)
            while True:
                data = input_file.read(2<<16)
                if not data:
                    break
                output_file.write(data)

            output_file.close()
            os.rename(temp_file_path, file_path)
            if ext == '.xls':
                import_data(xls_reader(file_path))
                
                
            return dict(success=True, notes=file_path)
def plan_act(request):
    ses = request.session
    req = request
    params   = req.params
    url_dict = req.matchdict
    
    if url_dict['act']=='grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('receipt_date', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('vendors.nama'))
        
        query = DBSession.query(ProductReceipt)
        rowTable = DataTables(req, ProductReceipt, query, columns)
        return rowTable.output_result()
    
    elif url_dict['act']=='grid1':
        cari = 'cari' in params and params['cari'] or ''
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('receipt_date', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('vendors.nama'))
        
        query = DBSession.query(ProductReceipt
                        ).filter(ProductReceipt.vendor_id==Vendor.id,
                                 ProductReceipt.unit_id==Unit.id,
                                 or_(Vendor.nama.ilike('%%%s%%' % cari),
                                     Unit.nama.ilike('%%%s%%' % cari),))
        rowTable = DataTables(req, ProductReceipt, query, columns)
        return rowTable.output_result()
       
    elif url_dict['act']=='hon_warehouse_receipt':
        term = 'term'    in params and params['term']    or '' 
        unit = 'unit_id' in params and params['unit_id'] or '' 
        rows = DBSession.query(ProductReceipt.id, ProductReceipt.kode, ProductReceipt.nama
                       ).filter(ProductReceipt.nama.ilike('%%%s%%' % term),
                                ProductReceipt.unit_id==unit).all()
        r = []
        for k in rows:
            d={}
            d['id']      = k[0]
            d['value']   = k[2]
            d['kode']    = k[1]
            d['nama']    = k[2]
            r.append(d)
        return r     
def plan_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('accept_date', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('product_delivers.nama'))

        query = DBSession.query(ProductAccept)
        rowTable = DataTables(req, ProductAccept, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'grid1':
        cari = 'cari' in params and params['cari'] or ''
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('accept_date', filter=_DTstrftime))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('product_delivers.nama'))

        query = DBSession.query(ProductAccept).filter(
            ProductAccept.product_deliver_id == ProductDeliver.id,
            ProductAccept.unit_id == Unit.id,
            or_(
                ProductDeliver.nama.ilike('%%%s%%' % cari),
                Unit.nama.ilike('%%%s%%' % cari),
            ))
        rowTable = DataTables(req, ProductAccept, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'hon_adjust_item':
        term = 'term' in params and params['term'] or ''
        adjust = 'adjust' in params and params['adjust'] or ''

        a = DBSession.query(ProductAdjust).filter(
            ProductAdjust.id == adjust).first()
        x = a.product_accept_id

        rows = DBSession.query(
            Product.id, Product.kode, Product.nama, Product.qty,
            ProductAcceptItem.qty, ProductDeliverItem.qty).filter(
                ProductAccept.id == x,
                ProductAccept.product_deliver_id ==
                ProductDeliverItem.product_deliver_id,
                ProductAcceptItem.product_accept_id == ProductAccept.id,
                ProductAcceptItem.product_id == ProductDeliverItem.product_id,
                Product.id == ProductAcceptItem.product_id,
                Product.nama.ilike('%%%s%%' % term),
            ).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[2]
            d['kode'] = k[1]
            d['nama'] = k[2]
            d['qty'] = k[3]
            d['a_qty'] = k[4]
            d['d_qty'] = k[5]
            r.append(d)
            print '----------------------Hasil Headof----------------------', r
        return r

    elif url_dict['act'] == 'hon_adjust':
        term = 'term' in params and params['term'] or ''
        unit = 'unit_id' in params and params['unit_id'] or ''
        rows = DBSession.query(ProductAccept.id, ProductAccept.kode,
                               ProductAccept.nama).filter(
                                   ProductAccept.nama.ilike('%%%s%%' % term),
                                   ProductAccept.unit_id == unit,
                                   ProductAccept.disabled == 0).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[2]
            d['kode'] = k[1]
            d['nama'] = k[2]
            r.append(d)
        return r

    elif url_dict['act'] == 'hok_adjust':
        term = 'term' in params and params['term'] or ''
        unit = 'unit_id' in params and params['unit_id'] or ''
        rows = DBSession.query(ProductAccept.id, ProductAccept.kode,
                               ProductAccept.nama).filter(
                                   ProductAccept.kode.ilike('%%%s%%' % term),
                                   ProductAccept.unit_id == unit,
                                   ProductAccept.disabled == 0).all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k[0]
            d['value'] = k[1]
            d['kode'] = k[1]
            d['nama'] = k[2]
            r.append(d)
        return r
def plan_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('units.nama'))
        columns.append(ColumnDT('product_plans.kode'))
        columns.append(ColumnDT('product_plans.nama'))
        columns.append(ColumnDT('approval_date', filter=_DTstrftime))
        columns.append(ColumnDT('approval_level'))
        columns.append(ColumnDT('notes'))

        query = DBSession.query(ProductPlanAppr)
        rowTable = DataTables(req, ProductPlanAppr, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'grid1':
        cari = 'cari' in params and params['cari'] or ''
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('un'))
        columns.append(ColumnDT('pk'))
        columns.append(ColumnDT('pn'))
        columns.append(ColumnDT('approval_date', filter=_DTstrftime))
        columns.append(ColumnDT('approval_level'))
        columns.append(ColumnDT('notes'))

        query = DBSession.query(
            ProductPlanAppr.id,
            Unit.nama.label('un'),
            ProductPlan.kode.label('pk'),
            ProductPlan.nama.label('pn'),
            ProductPlanAppr.approval_date,
            ProductPlanAppr.approval_level,
            ProductPlanAppr.notes,
        ).filter(
            ProductPlanAppr.product_plan_id == ProductPlan.id,
            ProductPlanAppr.unit_id == Unit.id,
            or_(
                ProductPlan.nama.ilike('%%%s%%' % cari),
                ProductPlan.kode.ilike('%%%s%%' % cari),
                Unit.nama.ilike('%%%s%%' % cari),
            ))
        rowTable = DataTables(req, ProductPlanAppr, query, columns)
        return rowTable.output_result()
Beispiel #13
0
def view_act(request):
    req = request
    params = req.params
    url_dict = req.matchdict
    user = req.user
    if url_dict['act'] == 'grid':
        awal = 'awal' in request.GET and request.GET['awal'] or datetime.now(
        ).strftime('%Y-%m-%d')
        akhir = 'akhir' in request.GET and request.GET[
            'akhir'] or datetime.now().strftime('%Y-%m-%d')
        #return awal, akhir
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('arinvoices.kode'))
        columns.append(ColumnDT('arinvoices.wp_nama'))
        columns.append(ColumnDT('arinvoices.op_kode'))
        columns.append(ColumnDT('arinvoices.op_nama'))
        columns.append(ColumnDT('arinvoices.rek_nama'))
        columns.append(ColumnDT('bayar', filter=_DTnumberformat))
        columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
        columns.append(ColumnDT('posted'))

        query = DBSession.query(ARSspd).join(ARInvoice)\
                         .filter(ARSspd.tgl_bayar.between(awal,akhir))

        rowTable = DataTables(req.GET, ARSspd, query, columns)
        return rowTable.output_result()

        u = request.user.id
        a = DBSession.query(
            UserGroup.group_id).filter(UserGroup.user_id == u).first()
        b = '%s' % a
        c = int(b)

        x = DBSession.query(
            UserUnit.unit_id).filter(UserUnit.user_id == u).first()
        if x == 'None' or not x:  #Untuk BUD
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('arinvoices.kode'))
            columns.append(ColumnDT('arinvoices.wp_nama'))
            columns.append(ColumnDT('arinvoices.op_kode'))
            columns.append(ColumnDT('arinvoices.op_nama'))
            columns.append(ColumnDT('arinvoices.rek_nama'))
            columns.append(ColumnDT('bayar', filter=_DTnumberformat))
            columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
            columns.append(ColumnDT('posted'))

            query = DBSession.query(ARSspd).join(ARInvoice)

            rowTable = DataTables(req, ARSspd, query, columns)
            return rowTable.output_result()

        y = '%s' % x
        z = int(y)

        if c == 2:  #Untuk Bendahara
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('arinvoices.kode'))
            columns.append(ColumnDT('arinvoices.wp_nama'))
            columns.append(ColumnDT('arinvoices.op_kode'))
            columns.append(ColumnDT('arinvoices.op_nama'))
            columns.append(ColumnDT('arinvoices.rek_nama'))
            columns.append(ColumnDT('bayar', filter=_DTnumberformat))
            columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
            columns.append(ColumnDT('posted'))

            query = DBSession.query(ARSspd).filter(
                ARSspd.arinvoice_id == ARInvoice.id,
                ARInvoice.unit_id == z).join(ARInvoice)

            rowTable = DataTables(req, ARSspd, query, columns)
            return rowTable.output_result()

        else:  #Untuk BUD
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('arinvoices.kode'))
            columns.append(ColumnDT('arinvoices.wp_nama'))
            columns.append(ColumnDT('arinvoices.op_kode'))
            columns.append(ColumnDT('arinvoices.op_nama'))
            columns.append(ColumnDT('arinvoices.rek_nama'))
            columns.append(ColumnDT('bayar', filter=_DTnumberformat))
            columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
            columns.append(ColumnDT('posted'))

            query = DBSession.query(ARSspd).join(ARInvoice)

            rowTable = DataTables(req, ARSspd, query, columns)
            return rowTable.output_result()
Beispiel #14
0
 def get_dt_columns(self):
     return [ColumnDT(m) for m in self.get_columns()]
def test_with_yadcf_data_param():
    """Return Column with yadcf_data filter as false."""
    col = ColumnDT(User.name, yadcf_data=False)

    if col.yadcf_data != False:
        raise AssertionError()
Beispiel #16
0
def service_list_json_route():
    """list services, data endpoint"""

    columns = [
        ColumnDT(Service.id, mData='id'),
        ColumnDT(Host.id, mData='host_id'),
        ColumnDT(Host.address, mData='host_address'),
        ColumnDT(Host.hostname, mData='host_hostname'),
        ColumnDT(Service.proto, mData='proto'),
        ColumnDT(Service.port, mData='port'),
        ColumnDT(Service.name, mData='name'),
        ColumnDT(Service.state, mData='state'),
        ColumnDT(Service.info, mData='info'),
        ColumnDT(Service.tags, mData='tags'),
        ColumnDT(Service.comment, mData='comment'),
        ColumnDT(literal_column('1'),
                 mData='_buttons',
                 search_method='none',
                 global_search=False)
    ]
    query = db.session.query().select_from(Service).outerjoin(Host)
    if 'filter' in request.values:
        query = apply_filters(query,
                              filter_parser.parse(
                                  request.values.get('filter')),
                              do_auto_join=False)

    services = DataTables(request.values.to_dict(), query,
                          columns).output_result()
    return jsonify(services)
def test_init_with_default_params():
    """Return column with given default params."""
    col = ColumnDT(User.id)

    if not (col.nulls_order is None or col.search_method == "string_contains"):
        raise AssertionError()
Beispiel #18
0
def usr_group_act(request):
    ses = request.session
    req = request
    params = req.params
    url_dict = req.matchdict

    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('email'))
        columns.append(ColumnDT('user_name'))
        columns.append(ColumnDT('status'))
        columns.append(ColumnDT('last_login_date'))
        columns.append(ColumnDT('registered_date'))
        columns.append(ColumnDT('group_name'))

        query = DBSession.query(User.id, User.user_name, User.email,
                                User.status, User.last_login_date,
                                User.registered_date, Group.group_name).filter(
                                    User.id == UserGroup.user_id,
                                    UserGroup.group_id == Group.id)

        rowTable = DataTables(req, User, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'member':
        columns = []
        gid = 'gid' in params and params['gid'] or 0
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('email'))
        columns.append(ColumnDT('user_name'))
        columns.append(ColumnDT('status'))
        query = DBSession.query(User.id, User.user_name, User.email, User.status,
                                User.last_login_date, User.registered_date).\
                  join(UserGroup).filter(UserGroup.group_id==gid)

        rowTable = DataTables(req, User, query, columns)
        return rowTable.output_result()
Beispiel #19
0
def data(dset_id,
         type,
         subject,
         session,
         cohort,
         ratings,
         comments,
         only_ratings=0):
    """Return server side data for datatable."""
    all_raters = request.args.get('all_raters', 0, type=int)

    columns = [
        ColumnDT(Image.name),
        ColumnDT(Rating.rating),
    ]

    # If there are ratings insert rating info
    if ratings:
        columns.insert(2, ColumnDT(Rating.timestamp))
        # TODO Figure out how to insert subratings here
        if comments:
            columns.insert(2, ColumnDT(Rating.comment))
        if all_raters:
            columns.insert(2, ColumnDT(Rater.username))

    # Check if there are cohort labels
    if cohort:
        columns.insert(1, ColumnDT(Image.cohort))

    # Check if there are sess labels
    if session:
        columns.insert(1, ColumnDT(Image.session))

    # Check if there are sub labels
    if subject:
        columns.insert(1, ColumnDT(Image.subject))

    # Check if there are type labels
    if type:
        columns.insert(1, ColumnDT(Image.imgtype))

    # Ratings query for single user (only ratings)
    if all_raters or current_user.is_anonymous:
        query = db.session.query().\
            select_from(Image).\
            filter(Image.dataset_id == dset_id,
                   Rating.rating > 0).\
            join(Rating).\
            join(Rater) if only_ratings \
            else db.session.query().\
            select_from(Image).\
            filter(Image.dataset_id == dset_id).\
            join(Rating, isouter=True).\
            join(Rater, isouter=True)
    else:
        if only_ratings:
            query = db.session.query().\
                select_from(Image).\
                filter(Image.dataset_id == dset_id,
                       Rating.rater == current_user,
                       Rating.rating > 0).\
                join(Rating).\
                join(Rater)
        else:
            query = db.session.query().\
                select_from(Image).\
                filter(Image.dataset_id == dset_id,
                       or_(Rating.rater == current_user,
                           Rating.rater == None)).\
                join(Rating, isouter=True).\
                join(Rater, isouter=True)

    params = request.args.to_dict()

    rowTable = DataTables(params, query, columns)
    return jsonify(rowTable.output_result())
def usr_unit_act(request):
    ses = request.session
    req = request
    params   = req.params
    url_dict = req.matchdict
    
    if url_dict['act']=='grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('email'))
        columns.append(ColumnDT('user_name'))
        columns.append(ColumnDT('status'))
        columns.append(ColumnDT('last_login_date'))
        columns.append(ColumnDT('registered_date'))
        columns.append(ColumnDT('nama'))
        
        query = DBSession.query(User.id, User.user_name, User.email, User.status,
                                User.last_login_date, User.registered_date,
                                Unit.nama
                               ).outerjoin(UserUnit
                               ).outerjoin(Unit
                               ).filter(UserUnit.user_id!='1',UserUnit.user_id!='2',)
        
        rowTable = DataTables(req, User, query, columns)
        return rowTable.output_result()
    
    elif url_dict['act']=='grid1':
        cari = 'cari' in params and params['cari'] or ''
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('email'))
        columns.append(ColumnDT('user_name'))
        columns.append(ColumnDT('status'))
        columns.append(ColumnDT('last_login_date'))
        columns.append(ColumnDT('registered_date'))
        columns.append(ColumnDT('nama'))
        
        query = DBSession.query(User.id, User.user_name, User.email, User.status,
                                User.last_login_date, User.registered_date,
                                Unit.nama
                               ).outerjoin(UserUnit
                               ).outerjoin(Unit
                               ).filter(UserUnit.user_id!='1',
                                        UserUnit.user_id!='2',
                                        UserUnit.user_id==User.id,
                                        UserUnit.unit_id==Unit.id,
                                        or_(Unit.nama.ilike('%%%s%%' % cari),
                                        User.user_name.ilike('%%%s%%' % cari),
                                        User.email.ilike('%%%s%%' % cari),))
        
        rowTable = DataTables(req, User, query, columns)
        return rowTable.output_result()
Beispiel #21
0
def note_list_json_route():
    """list notes, data endpoint"""

    columns = [
        ColumnDT(Note.id, mData='id'),
        ColumnDT(Host.id, mData='host_id'),
        ColumnDT(Host.address, mData='host_address'),
        ColumnDT(Host.hostname, mData='host_hostname'),
        # break pylint duplicate-code
        ColumnDT(Service.proto, mData='service_proto'),
        ColumnDT(Service.port, mData='service_port'),
        ColumnDT(func.concat_ws('/', Service.port, Service.proto),
                 mData='service'),
        ColumnDT(Note.xtype, mData='xtype'),
        ColumnDT(Note.data, mData='data'),
        ColumnDT(Note.tags, mData='tags'),
        ColumnDT(Note.comment, mData='comment'),
        ColumnDT(literal_column('1'),
                 mData='_buttons',
                 search_method='none',
                 global_search=False)
    ]
    query = db.session.query().select_from(Note).outerjoin(
        Host, Note.host_id == Host.id).outerjoin(Service,
                                                 Note.service_id == Service.id)
    if 'filter' in request.values:
        query = apply_filters(query,
                              filter_parser.parse(
                                  request.values.get('filter')),
                              do_auto_join=False)

    notes = DataTables(request.values.to_dict(), query,
                       columns).output_result()
    return jsonify(notes)
def test_with_filter_ok():
    """Return column with a specific filter."""
    col = ColumnDT(User.name, search_method="like")

    if col.search_method != "like":
        raise AssertionError()
Beispiel #23
0
    def gaji_unit_act(self):
        ses = self.request.session
        req = self.request
        params = req.params
        url_dict = req.matchdict
        if url_dict['act'] == 'grid':
            columns = []
            columns.append(ColumnDT('id'))
            columns.append(ColumnDT('kode'))
            columns.append(ColumnDT('nama'))
            columns.append(ColumnDT('disabled'))

            groups = groupfinder(req.user, req)
            ids = []
            if req.user.id == 1 or 'group:admin' in groups:
                query = UnitModel.query()  #DBSession.query(UnitModel)
            else:
                units = DBSession.query(
                    UserUnitModel.unit_id, UserUnitModel.sub_unit,
                    UnitModel.kode).join(UnitModel).filter(
                        UnitModel.id == UserUnitModel.unit_id,
                        UserUnitModel.user_id == req.user.id).all()

                for unit in units:
                    if unit.sub_unit:
                        rows = DBSession.query(UnitModel.id).filter(
                            UnitModel.kode.ilike('%s%%' % unit.kode)).all()
                    else:
                        rows = DBSession.query(UnitModel.id).filter(
                            UnitModel.kode == unit.kode).all()
                    for i in range(len(rows)):
                        ids.append(rows[i])
                query = DBSession.query(UnitModel).filter(
                    (UnitModel.id).in_(ids))
            rowTable = DataTables(req, UnitModel, query, columns)
            return rowTable.output_result()

        elif url_dict['act'] == 'changeid':
            ids = UserUnitModel.unit_granted(req.user.id, params['unit_id'])
            if req.user.id>1 and 'g:admin' not in groupfinder(req.user, req)\
                    and not ids:
                return {
                    'success':
                    False,
                    'msg':
                    'Anda tidak boleh mengubah ke unit yang bukan hak akses anda'
                }

            row = UnitModel.get_by_id('unit_id' in params and params['unit_id']
                                      or 0)
            if row:
                ses['unit_id'] = row.id
                ses['unit_kd'] = row.kode
                ses['unit_nm'] = row.nama
                return {'success': True, 'msg': 'Sukses ubah SKPD'}

        elif url_dict['act'] == 'headofnama':
            term = 'term' in params and params['term'] or ''
            rows = DBSession.query(
                UnitModel.id, UnitModel.kode, UnitModel.nama).filter(
                    UnitModel.nama.ilike('%%%s%%' % term)).all()
            r = []
            for k in rows:
                d = {}
                d['id'] = k[0]
                d['value'] = k[2]
                d['kode'] = k[1]
                d['nama'] = k[2]
                r.append(d)
            return r
        elif url_dict['act'] == 'import':
            rows = DBSession.execute(
                """SELECT a.kode, a.nama, a.passwd, b.unit_id 
                                        FROM admin.users2 a
                                        INNER JOIN admin.user_units2 b
                                        ON a.id = b.id""").all()
            for kode, nama, passwd, unit_id in rows:
                user = Users()
                user.user_name = nama
                user.user_password = passwd
                user.email = ''.join([nama, '@tangerangkab.org'])
                user.status = 1
                DBSession.add(user)
                DBSession.flush()
                if user.id:
                    user_unit = UserUnitModel()
                    user_unit.user_id = user.id
                    user_unit.unit_id = unit_id
                    user_unit.status = 1
                    DBSession.add(user_unit)
                    DBSession.flush()
def test_with_valid_nulls_order():
    """Return column with a specific filter."""
    col = ColumnDT(User.name, nulls_order="nullslast")

    if col.nulls_order != "nullslast":
        raise AssertionError()
Beispiel #25
0
def view_act(request):
    req = request
    params = req.params
    url_dict = req.matchdict
    if url_dict['act'] == 'sspd':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('arinvoices.kode'))
        columns.append(ColumnDT('arinvoices.wp_nama'))
        columns.append(ColumnDT('arinvoices.op_kode'))
        columns.append(ColumnDT('arinvoices.op_nama'))
        columns.append(ColumnDT('arinvoices.rek_nama'))
        columns.append(ColumnDT('bayar', filter=_DTnumberformat))
        columns.append(ColumnDT('tgl_bayar', filter=_DTstrftime))
        columns.append(ColumnDT('posted'))

        query = DBSession.query(ARSspd).join(ARInvoice).\
                          filter(ARSspd.posted==0,
                                 ARInvoice.unit_id==request.session['unit_id'])

        rowTable = DataTables(req, ARSspd, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'grid':
        #Nambahin param sts_id untuk percobaan sementara, karena session sts_id tidak jalan
        sts_id = 'sts_id' in params and params['sts_id'] or 0
        print '----------------------ID STS-------------------------', sts_id
        columns = []
        columns.append(ColumnDT('sspd_id'))
        columns.append(ColumnDT('sts_id'))
        columns.append(ColumnDT('rekening_id'))
        columns.append(ColumnDT('rekenings.kode'))
        columns.append(ColumnDT('rekenings.nama'))
        columns.append(ColumnDT('jumlah', filter=_DTnumberformat))

        query = DBSession.query(ARStsItem).join(Rekening).\
                          filter(ARStsItem.sts_id==sts_id)#request.session['sts_id'])

        rowTable = DataTables(req, ARStsItem, query, columns)
        return rowTable.output_result()
def test_with_invalid_nulls_order():
    """Return column with a specific filter."""
    with pytest.raises(ValueError):
        ColumnDT(User.name, nulls_order="invalid")
Beispiel #27
0
def view_act(request):
    req = request
    params = req.params
    url_dict = req.matchdict
    if url_dict['act'] == 'grid':
        columns = []
        columns.append(ColumnDT('id'))
        columns.append(ColumnDT('wajibpajaks.nama'))
        columns.append(ColumnDT('kode'))
        columns.append(ColumnDT('nama'))
        columns.append(ColumnDT('pajaks.kode'))
        columns.append(ColumnDT('wilayahs.nama'))
        columns.append(ColumnDT('status', filter=_DTactive))
        query = DBSession.query(ObjekPajak).join(WajibPajak).outerjoin(Pajak).\
                          outerjoin(Wilayah)
        if request.user.id != 1:
            query = query.join(Unit).join(UserUnit).\
                          filter(UserUnit.user_id==request.user.id)

        rowTable = DataTables(req.GET, ObjekPajak, query, columns)
        return rowTable.output_result()

    elif url_dict['act'] == 'hon':
        term = 'term' in params and params['term'] or ''
        query = DBSession.query(ObjekPajak).join(Pajak).\
                         filter(ObjekPajak.nama.ilike('%%%s%%' % term))

        wp_id = 'wpid' in req.params and req.params['wpid'] or None
        if wp_id:
            query = query.filter(ObjekPajak.wajibpajak_id == wp_id)

        rows = query.all()
        r = []
        for k in rows:
            d = {}
            d['id'] = k.id
            d['value'] = k.nama
            d['alamat_1'] = k.alamat_1
            d['alamat_2'] = k.alamat_2
            d['tarif'] = k.pajaks.tarif
            r.append(d)
        return r

    elif url_dict['act'] == 'hon1':
        x = request.user.id
        term = 'term' in params and params['term'] or ''

        d = DBSession.query(User.email).filter(User.id == x).first()

        rows = DBSession.query(ObjekPajak).join(WajibPajak).join(Pajak).\
                         filter(ObjekPajak.nama.ilike('%%%s%%' % term),
                                ObjekPajak.wajibpajak_id==WajibPajak.id,
                                WajibPajak.email==d,
                                ObjekPajak.pajak_id==Pajak.id).all()
        r = []
        for k in rows:
            print k
            d = {}
            d['id'] = k.id
            d['value'] = k.nama
            d['sp_id'] = k.wajibpajaks.id
            d['sp_nm'] = k.wajibpajaks.nama
            d['unit_id'] = k.units.id
            d['unit_nm'] = k.units.nama
            d['tarif'] = k.pajaks.tarif

            r.append(d)
        return r
def test_with_invalid_search_method():
    """Return column with a specific filter."""
    with pytest.raises(ValueError):
        ColumnDT(User.name, search_method="invalid")
Beispiel #29
0
    def test_with_default_params_ok(self):
        """Return column with given default params."""
        col = ColumnDT('id')

        assert col.column_name == 'id'
        assert col.filter(col.column_name) == 'id'
def get_data():
    from app.helper import dt_to_str
    columns = [
        ColumnDT(Asin.id),
        ColumnDT(Asin.site_url),
        ColumnDT(Asin.asin),
        ColumnDT(Asin.review_rating),
        ColumnDT(Asin.quantity),
        ColumnDT(Asin.unit),
        ColumnDT(Asin.sell_price),
        ColumnDT(Asin.link),
        ColumnDT(Asin.created_at),
        ColumnDT(Asin.status),
        ColumnDT(Asin.description)
    ]

    args = parser.parse(request.query_string)

    order = args['order']
    order_index = order[0]['column']
    dir_asc = order[0]['dir']

    if order_index == 1:
        order = Asin.site_url
    elif order_index == 2:
        order = Asin.asin
    elif order_index == 3:
        order = Asin.review_rating
    elif order_index == 4:
        order = Asin.quantity
    elif order_index == 5:
        order = Asin.sell_price
    elif order_index == 6:
        order = Asin.link
    elif order_index == 7:
        order = Asin.link
    elif order_index == 8:
        order = Asin.created_at
    elif order_index == 9:
        order = Asin.status
    elif order_index == 10:
        order = Asin.description
    else:
        order = Asin.id

    if dir_asc == 'desc':
        order_by = desc(order)
    else:
        order_by = asc(order)

    search_value = args['search']['value']

    if search_value != '':
        query = db.session.query().select_from(Asin)
    else:
        query = db.session.query().select_from(Asin).filter(
            Asin.site_url.like('%' + search_value + '%')
            | Asin.asin.like('%' + search_value + '%'))

        query = query.order_by(order_by)
    params = request.args.to_dict()
    rowTable = DataTables(params, query, columns)

    # returns what is needed by DataTable
    return jsonify(rowTable.output_result())