def GET(self): params = web.input(page=1) try: page = int(params.page) except: page = 1 session = get_session() limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 dic = lit(relations='servers', fields="*", criteria="", order="id desc", limit=limit, offset=start) servers = doquery(db, dic) servers2 = doquery(db, dic) dic = lit(relations='requests_view', fields="*", criteria=session.criteria, order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "search", "?page=") l = locals() del l['self'] return render.search(**l)
def GET(self): params = web.input(page=1, ed="", d_id="", search="", subcounty="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': districts_SQL = ( "SELECT id, name FROM locations WHERE id = " "ANY('%s'::INT[]) ORDER BY name" % session.districts_array) # criteria = "district='%s'" % session.username.capitalize() criteria = "is_active = 't' AND district_id = ANY('%s'::INT[]) " % session.districts_array if params.search: criteria += (" AND name ilike '%%%%%s%%%%' " % params.search ) if params.subcounty: criteria += ( " AND location = %s " % params.subcounty) else: districts_SQL = ( "SELECT id, name FROM locations WHERE type_id = " "(SELECT id FROM locationtype WHERE name = 'district') ORDER by name") criteria = " is_active = 't' " if params.search: criteria += (" AND name ilike '%%%%%s%%%%' " % params.search ) if params.subcounty: criteria += ( " AND location = %s " % params.subcounty) dic = lit( relations='healthfacilities', fields="id, name, type_id, district, location_name, is_033b, code, last_reporting_date", criteria=criteria, order="district, name asc", limit=limit, offset=start) facilities = doquery(db, dic) facilitiesx = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "facilities", "?page=") districts_1 = db.query(districts_SQL) districts_2 = db.query(districts_SQL) district = {} l = locals() del l['self'] return render.facilities(**l)
def GET(self): params = web.input(page=1) try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 # we start getting requests a month old t = cal.parse("2 month ago")[0] amonthAgo = '%s-%s-%s' % (t.tm_year, t.tm_mon, t.tm_mday) dic = lit(relations='requests', fields="*", criteria="status='failed' AND created > '%s'" % (amonthAgo), order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "failed", "?page=") l = locals() del l['self'] return render.failed(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 roles = db.query( "SELECT id, name from reporter_groups WHERE name " "IN ('VHT', 'HC', 'Incharge', 'Records Assistant') order by name") limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': criteria = "district='%s'" % session.username.capitalize() else: criteria = "" dic = lit( relations='healthfacilities', fields="id, name, type_id, district, location_name, is_033b, code", criteria=criteria, order="district, name asc", limit=limit, offset=start) facilities = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "facilities", "?page=") l = locals() del l['self'] return render.facilities(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': criteria = "district='%s'" % session.username.capitalize() else: criteria = "" dic = lit( relations='facilities', fields="id, name, dhis2id, district, subcounty, is_033b, level, ldate", criteria=criteria, order="district, subcounty, name asc", limit=limit, offset=start) facilities = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "fsync", "?page=") l = locals() del l['self'] return render.fsync(**l)
def GET(self, facilitycode): params = web.input(page=1, ed="", d_id="") edit_val = params.ed try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 dic = lit( relations='requests_view', fields= "id, facility, facility_name, district, msisdn, body, raw_msg, year, week, created", criteria="facility='%s'" % facilitycode, order="id desc", limit=limit, offset=start) reports = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "", "?page=") l = locals() del l['self'] return render.facilityreports(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if params.ed: r = db.query( "SELECT a.id, a.firstname, a.lastname, a.username, a.email, a.telephone, " "a.is_active, b.id as role, b.name role_name " "FROM users a, user_roles b " "WHERE a.id = $id AND a.user_role = b.id", {'id': params.ed}) if r and (session.role == 'Administrator' or '%s' % session.sesid == edit_val): u = r[0] firstname = u.firstname lastname = u.lastname telephone = u.telephone email = u.email username = u.username user_role = u.role role_name = u.role_name is_active = u.is_active is_super = True if u.role == 'Administrator' else False if params.d_id: if session.role == 'Administrator': db.query("DELETE FROM users WHERE id=$id", {'id': params.d_id}) roles = db.query("SELECT id, name FROM user_roles ORDER by name") current_role_id = userRolesByName[session.role] criteria = "" if session.role == 'Administrator': dic = lit( relations='users a, user_roles b', fields="a.id, a.firstname, a.lastname, a.username, a.email, a.telephone, b.name as role ", criteria="a.user_role = b.id", order="a.firstname, a.lastname", limit=limit, offset=start) else: dic = lit( relations='users a, user_roles b', fields="a.id, a.firstname, a.lastname, a.username, a.email, a.telephone, b.name as role ", criteria="a.user_role = b.id AND a.id=%s" % session.sesid, order="a.firstname, a.lastname", limit=limit, offset=start) users = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "users", "?page=") l = locals() del l['self'] return render.users(**l)
def POST(self): session = get_session() username = session.username params = web.input(page=1, reqid=[]) try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 with db.transaction(): if params.abtn == 'Cancel Selected': if params.reqid: for val in params.reqid: db.update('requests', where="id = %s" % val, status='canceled', updated='NOW()') log_dict = { 'logtype': 'Web', 'action': 'Cancel Requests', 'actor': username, 'ip': web.ctx['ip'], 'descr': 'User %s canceled %s request(s)' % (username, len(params.reqid)), 'user': session.sesid } audit_log(db, log_dict) db.transaction().commit() return web.seeother("/ready") dic = lit(relations='requests', fields="*", criteria="status='ready'", order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "ready", "?page=") l = locals() del l['self'] return render.ready(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") allow_edit = False try: edit_val = int(params.ed) allow_edit = True except ValueError: pass try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if params.ed and allow_edit: res = db.query( "SELECT id, description, shortname, slug, cmd, form, form_order, dataset, dataelement, " "category_combo, threshold FROM dhis2_mtrack_indicators_mapping WHERE id = $id", {'id': edit_val}) if res: r = res[0] name = r.description shortname = r.shortname slug = r.slug cmd = r.cmd form = r.form form_order = r.form_order dataset = r.dataset dataelement = r.dataelement category_combo = r.category_combo threshold = r.threshold dic = lit( relations="dhis2_mtrack_indicators_mapping", fields=( "id, description, shortname, slug, form, form_order, cmd, dataset, " "dataelement, category_combo "), criteria="", order="dataset, form, form_order", limit=limit, offset=start ) mappings = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "indicators", "?page=") l = locals() del l['self'] return render.indicators(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': district = '%s' % session.username.capitalize() if session.username in getattr(settings, 'NATIONAL_USERS', []): criteria = "report_type IN %s" % ( getattr(settings, 'MTRAC_FORMS', str( ('cases', 'death', 'epc', 'epd', 'tra', 'arv', 'tpt', 'tb', 'gp', 'apt', 'mat')))) else: criteria = "district SIMILAR TO '%%(%s)%%' AND report_type IN %s" % ( session.districts_string, getattr(settings, 'MTRAC_FORMS', str( ('cases', 'death', 'epc', 'epd', 'tra', 'arv', 'tpt', 'tb', 'gp', 'apt', 'mat')))) dic = lit( relations='requests_view', fields=( "id, facility, facility_name, district, msisdn, body, status, source, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg"), criteria=criteria, order="id desc", limit=limit, offset=start) else: criteria = "report_type IN %s" % (getattr(settings, 'MTRAC_FORMS', str( ('cases', 'death', 'epc', 'epd', 'tra', 'arv', 'ip', 'tb', 'gp', 'apt', 'mat')))) dic = lit( relations='requests_view', fields=( "id, facility, facility_name, district, msisdn, body, status, source, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg"), criteria=criteria, order="id desc", limit=limit, offset=start) reports = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "archive", "?page=") l = locals() del l['self'] return render.archive(**l)
def GET(self): params = web.input(page=1) try: page = int(params.page) except: page = 1 session = get_session() limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 dic = lit(relations='servers', fields="*", criteria="", order="id desc", limit=limit, offset=start) servers = doquery(db, dic) servers2 = doquery(db, dic) report_types = db.query( "SELECT distinct(form) AS form FROM dhis2_mtrack_indicators_mapping ORDER BY form" ) dic = lit(relations='requests_view', fields="*", criteria=session.criteria, order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "search", "?page=") l = locals() del l['self'] return render.search(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = settings.PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': district = '%s' % session.username.capitalize() if session.username in getattr(settings, 'NATIONAL_USERS', []): criteria = " TRUE " else: criteria = "district SIMILAR TO '%%(%s)%%'" % session.districts_string dic = lit( relations='rejected_reports_view', fields= ("id, facility, facility_name, district, msisdn, body, source, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg" ), criteria=criteria, order="id desc", limit=limit, offset=start) else: dic = lit( relations='rejected_reports_view', fields= ("id, facility, facility_name, district, msisdn, body, source, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg" ), # criteria="status='pending'", order="id desc", limit=limit, offset=start) reports = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "rejected", "?page=") l = locals() del l['self'] return render.rejected(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if params.ed: r = db.query( "SELECT id, name, descr FROM user_roles WHERE id = $id", {'id': params.ed}) if r and (session.role == 'Administrator'): g = r[0] name = g.name description = g.descr permission_ids = [] rx = db.query( "SELECT permission_id AS id FROM user_role_permissions WHERE user_role = $user_role ", {'user_role': params.ed}) for p in rx: permission_ids.append(p['id']) if params.d_id: if session.role == 'Administrator': pass # db.query("DELETE FROM user_role_permissions WHERE user_role=$id", {'id': params.d_id}) # db.query("DELETE FROM user_roles WHERE id=$id", {'id': params.d_id}) dic = lit(relations='user_roles', fields='id, name, descr', criteria='', order='name', limit=limit, offset=start) groups = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "groups", "?page=") l = locals() del l['self'] return render.groups(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") edit_val = params.ed session = get_session() try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if session.role == 'District User': district = '%s' % session.username.capitalize() criteria = "district='%s'" % district dic = lit( relations='requests_view', fields= ("id, facility, facility_name, district, msisdn, body, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg" ), criteria=criteria + " AND status='pending' AND report_type IN ('ras', 'car')", order="id desc", limit=limit, offset=start) else: dic = lit( relations='requests_view', fields= ("id, facility, facility_name, district, msisdn, body, " "raw_msg, year, week, created, report_type, is_edited, edited_raw_msg" ), criteria="status='pending' AND report_type IN ('ras', 'car')", order="id desc", limit=limit, offset=start) reports = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "caramalreports", "?page=") l = locals() del l['self'] return render.caramal(**l)
def GET(self): params = web.input(page=1, ed="", d_id="") try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 topics = TOPICS action_centers = ACTION_CENTERS session = get_session() if session.role == 'District User': district_id = allDistrictsByName['%s' % session.username.capitalize()] criteria = "districtid = %s" % district_id dic = lit( relations="anonymousreports_view", fields=( "id, facility, district, created, report, action, topic, " "action_taken, action_center, comment"), criteria=criteria, order="id desc", limit=limit, offset=start) else: criteria = "" dic = lit( relations="anonymousreports_view", fields=( "id, facility, district, created, report, action, topic, " "action_taken, action_center, comment"), criteria=criteria, order="id desc", limit=limit, offset=start) anonymous_reports = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "hotline", "?page=") l = locals() del l['self'] return render.hotline(**l)
def GET(self): params = web.input(page=1) try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 dic = lit( relations='requests', fields="*", criteria="status='completed'", order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "completed", "?page=") l = locals() del l['self'] return render.completed(**l)
def GET(self): params = web.input(page=1, ed="", d_id="", caller="web", search="", show="") edit_val = params.ed search_field = params.search show = params.show session = get_session() if session.role == 'District User': districts_SQL = ( "SELECT id, name FROM locations WHERE type_id = " "(SELECT id FROM locationtype WHERE name = 'district') " "AND name = '%s'" % session.username.capitalize()) else: districts_SQL = ( "SELECT id, name FROM locations WHERE type_id = " "(SELECT id FROM locationtype WHERE name = 'district') ORDER by name" ) districts = db.query(districts_SQL) district = {} roles = db.query("SELECT id, name from reporter_groups order by name") allow_edit = False try: edit_val = int(params.ed) allow_edit = True except ValueError: pass try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if params.ed and allow_edit: res = db.query( "SELECT id, firstname, lastname, gender, telephone, " "reporting_location, role, alternate_tel, facilityid, facility, code, date_of_birth, " "national_id, created, loc_name FROM reporters_view1 " " WHERE id = $id", {'id': edit_val}) if res: r = res[0] reporter_id = edit_val firstname = r.firstname lastname = r.lastname gender = r.gender telephone = r.telephone national_id = r.national_id role = r.role.split(',') alt_telephone = r.alternate_tel location = r.reporting_location parish = "" subcounty = "" facilityid = r.facilityid facility = r.facility facilityname = r.facility code = r.code date_of_birth = r.date_of_birth district = "" village = "" villagename = r.loc_name subcounties = [] ancestors = db.query( "SELECT id, name, level FROM get_ancestors($loc) " "WHERE level > 1 ORDER BY level DESC;", {'loc': location}) if ancestors: for loc in ancestors: if loc['level'] == 4: parish = loc parishname = loc['name'] villages = db.query( "SELECT id, name FROM get_children($id)", {'id': loc['id']}) if loc['level'] == 3: subcounty = loc subcountyname = loc['name'] parishes = db.query( "SELECT id, name FROM get_children($id)", {'id': loc['id']}) elif loc['level'] == 2: district = loc districtname = loc['name'] subcounties = db.query( "SELECT id, name FROM get_children($id)", {'id': loc['id']}) else: district = location location_for_facilities = subcounty.id if subcounty else district.id if location_for_facilities: facilities = db.query( "SELECT id, name FROM healthfacilities WHERE location=$loc", {'loc': location_for_facilities}) if facilityid: facility = r.facility allow_del = False try: del_val = int(params.d_id) allow_del = True except ValueError: pass if params.d_id and allow_del: if session.role in ('District User', 'Administrator'): reporter = db.query( "SELECT firstname || ' ' || lastname as name, telephone " "FROM reporters WHERE id = $id", {'id': params.d_id}) if reporter: rx = reporter[0] log_dict = { 'logtype': 'Web', 'action': 'Delete', 'actor': session.username, 'ip': web.ctx['ip'], 'descr': 'Deleted reporter %s:%s (%s)' % (params.d_id, rx['name'], rx['telephone']), 'user': session.sesid } # db.query("DELETE FROM reporter_groups_reporters WHERE reporter_id=$id", {'id': params.d_id}) # db.query("DELETE FROM reporter_healthfacility WHERE reporter_id=$id", {'id': params.d_id}) db.query("DELETE FROM schedules WHERE reporter_id=$id", {'id': params.d_id}) db.query("DELETE FROM reporters WHERE id=$id", {'id': params.d_id}) audit_log(db, log_dict) if params.caller == "api": # return json if API call web.header("Content-Type", "application/json; charset=utf-8") return json.dumps({'message': "success"}) if session.role == 'District User': district_id = allDistrictsByName['%s' % session.username.capitalize()] criteria = "district_id=%s" % district_id if params.search: criteria += ( " AND (telephone ilike '%%%%%s%%%%' OR alternate_tel ilike '%%%%%s%%%%' OR " "name ilike '%%%%%s%%%%')") criteria = criteria % (params.search, params.search, params.search) dic = lit( relations='reporters_view1', fields= ("id, name, gender, telephone, district_id, alternate_tel, " "facility, role, uuid, created "), criteria=criteria, order="facility, name", limit=limit, offset=start) else: dic = lit( relations='reporters_view1', fields= ("id, name, gender, telephone, district_id, alternate_tel, " "facility, role, uuid, created "), criteria=criteria, order="id desc", limit=limit, offset=start) else: criteria = "TRUE " if params.search: criteria += ( " AND (telephone ilike '%%%%%s%%%%' OR alternate_tel ilike '%%%%%s%%%%' OR " "name ilike '%%%%%s%%%%')") criteria = criteria % (params.search, params.search, params.search) dic = lit( relations='reporters_view1', fields= ("id, name, gender, telephone, district_id, alternate_tel, " "facility, role, uuid, created "), criteria=criteria, order="facility, name", limit=limit, offset=start) else: criteria = "id > (SELECT max(id) - 250 FROM reporters)" dic = lit( relations='reporters_view1', fields= ("id, name, gender, telephone, district_id, alternate_tel, " "facility, role, uuid, created "), criteria=criteria, order="facility, name", limit=limit, offset=start) try: reporters = doquery(db, dic) count = countquery(db, dic) except: reporters = [] count = 0 pagination_str = getPaginationString(default(page, 0), count, limit, 2, "reporters", "?page=") l = locals() del l['self'] return render.reporters(**l)
def GET(self): params = web.input(page=1, ed="", d_id="", search="") edit_val = params.ed session = get_session() if session.role == 'District User': districts_SQL = ("SELECT id, name FROM locations WHERE id = " "ANY('%s'::INT[]) ORDER BY name" % session.districts_array) else: districts_SQL = ( "SELECT id, name FROM locations WHERE type_id = " "(SELECT id FROM locationtype WHERE name = 'district') ORDER by name" ) districts_1 = db.query(districts_SQL) districts_2 = db.query(districts_SQL) district = {} groups_2 = db.query("SELECT id, name FROM reporter_groups") allow_edit = False try: edit_val = int(params.ed) allow_edit = True except ValueError: pass try: page = int(params.page) except: page = 1 limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 if params.ed and allow_edit: r = db.query( "SELECT id, name, type, question, default_response, start_date " "FROM polls WHERE id=$id", {'id': params.ed}) if r: p = r[0] name = p.name poll_type = p.type question = p.question default_response = p.default_response start_date = p.start_date if not start_date: pass # return group_ids = [] rx = db.query( "SELECT id FROM reporter_groups WHERE id IN " "(select unnest(groups) from polls where id = $id)", {'id': params.ed}) for g in rx: group_ids.append(g['id']) district_ids = [] rx = db.query( "SELECT id FROM locations WHERE id IN " "(select unnest(districts) from polls where id = $id)", {'id': params.ed}) for d in rx: district_ids.append(d['id']) allow_del = False try: del_val = int(params.d_id) allow_del = True except ValueError: pass if params.d_id and allow_del: if session.role == 'Administrator': db.query("DELETE FROM polls WHERE id=$id", {'id': params.d_id}) if session.role == 'District User': criteria = "user_id = %s " % session.sesid if params.search: criteria += (" AND name ilike '%%%%%s%%%%' " % params.search) dic = lit( relations='polls', fields= "id, name, question, start_date, end_date, response_count, recipient_count", criteria=criteria, order="id desc", limit=limit, offset=start) else: dic = lit( relations="polls", fields= "id, name, question, start_date, end_date, response_count, recipient_count", criteria=criteria, order="id desc", limit=limit, offset=start) else: criteria = "TRUE " if params.search: criteria += (" AND name ilike '%%%%%s%%%%' " % params.search) dic = lit( relations='polls', fields= "id, name, question, start_date, end_date, response_count, recipient_count", criteria=criteria, order="id desc", limit=limit, offset=start) else: dic = lit( relations="polls", fields= "id, name, question, start_date, end_date, response_count, recipient_count", criteria=criteria, order="id desc", limit=limit, offset=start) polls = doquery(db, dic) polls_2 = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "polling", "?page=") l = locals() del l['self'] return render.polls(**l)
def POST(self): params = web.input(page=1, reqid=[], submissionid="", body="", sdate="", edate="", status="", year="", week="", pbtn="", msisdn="", facility="") try: page = int(params.page) except: page = 1 session = get_session() limit = PAGE_LIMIT start = (page - 1) * limit if page > 0 else 0 dic = lit(relations='servers', fields="*", criteria="", order="id desc", limit=limit, offset=start) servers = doquery(db, dic) servers2 = doquery(db, dic) with db.transaction(): if params.pbtn == 'Retry Selected': if params.reqid: for val in params.reqid: db.update('requests', where="id = %s" % val, status='ready') if params.pbtn == 'Cancel Selected': if params.reqid: for val in params.reqid: db.update('requests', where="id = %s" % val, status='canceled') db.transaction().commit() criteria = "TRUE " if params.submissionid: criteria += " AND submissionid = %s" % params.submissionid if params.status: criteria += " AND status = '%s' " % params.status if params.sdate: criteria += " AND created >= '%s'" % params.sdate if params.edate: criteria += " AND created <= '%s'" % params.edate if params.week: criteria += " AND week = '%s'" % params.week if params.body: criteria += " AND body ILIKE '%%%s%%'" % params.body if params.year: criteria += " AND year = '%s'" % params.year if params.msisdn: criteria += " AND msisdn = '%s'" % params.msisdn if params.facility: criteria += " AND facility = '%s'" % params.facility if params.formatting: if params.formatting == "xml": criteria += " AND xml_is_well_formed_document(body)" print criteria if len(criteria) > 5: session.criteria = criteria dic = lit(relations='requests_view', fields="*", criteria=criteria, order="id desc", limit=limit, offset=start) res = doquery(db, dic) count = countquery(db, dic) pagination_str = getPaginationString(default(page, 0), count, limit, 2, "search", "?page=") l = locals() del l['self'] return render.search(**l)