def update_user(self): cnds = self.navb.conditions() message = '' user = None #print "IDS: ",self.navb.kw, self.navb.kw.get('id') , self.navb.kw.get('pk') if self.navb.kw.get('id') or self.navb.kw.get('pk'): mkw = "%s" % self.navb.kw.get('id') or self.navb.kw.get('pk') cnds = {"indexcol = %s": mkw} user = Enduser.get_users(cnds)[0] if self.navb.kw.get("pk") and self.navb.kw.get( 'nid') and self.navb.kw.get('telephone_moh'): cnds = {"indexcol = %s": self.navb.kw.get("pk")} indexcol = self.navb.kw.get('pk') nid = self.navb.kw.get('nid') phone = self.navb.kw.get('telephone_moh') formdata = { "indexcol": indexcol, "telephone": phone, "national_id": nid, "email": self.navb.kw.get('email'), "surname": self.navb.kw.get('surname'), "given_name": self.navb.kw.get('given_name'), "sex_pk": self.navb.kw.get('sex'), "role_pk": self.navb.kw.get('role'), "education_level_pk": self.navb.kw.get('edu_level'), "date_of_birth": self.navb.make_time(self.navb.kw.get('dob')), "join_date": self.navb.make_time(self.navb.kw.get('djoin')), "language_pk": self.navb.kw.get('language'), "nation_pk": self.navb.kw.get('user_nation'), "province_pk": self.navb.kw.get('user_province'), "district_pk": self.navb.kw.get('user_district'), "referral_facility_pk": self.navb.kw.get('user_hospital'), "facility_pk": self.navb.kw.get('user_facility'), "location_level_pk": self.navb.kw.get('user_area_level'), "sector_pk": self.navb.kw.get('user_sector'), "cell_pk": self.navb.kw.get('user_cell'), "village_pk": self.navb.kw.get('user_village'), "is_active": True, "is_correct": True } #print "\nFORM: ", formdata, "\n" message, user = Enduser.update_user(formdata) if user: user = Enduser.get_users(cnds)[0] self.navb.kw = {"id": self.navb.kw.get("pk")} sectors = self.navb.auth.auth_filter_locations("sec", user.district_pk) cells = self.navb.auth.auth_filter_locations("cel", user.sector_pk) villages = self.navb.auth.auth_filter_locations("vil", user.cell_pk) genders = Enduser.get_genders() roles = Enduser.get_roles() langs = Enduser.get_languages() education_levels = Enduser.get_education_levels() area_levels = Enduser.get_location_levels() #print user.__dict__ return [ sectors, cells, villages, genders, roles, education_levels, area_levels, langs, message, user ]
def get_stats(self): cnds = self.navb.conditions() #print "CNDS: ", cnds attrs = [(x.indexcol, x.code.lower(), x.name) for x in Enduser.get_roles()] cols = ['COUNT(*) AS total'] exts = {} for attr in attrs: exts.update( {attr[1].lower(): ('COUNT(*)', 'role_pk = %d' % attr[0])}) nat = Enduser.get_users_summary(cnds, cols, exts) avg = average return [attrs, avg, nat]
def register_user(self): cnds = self.navb.conditions() message = '' user = None if self.navb.kw.get("nid") and self.navb.kw.get('telephone_moh'): nid = nid = self.navb.kw.get('nid') phone = self.navb.kw.get('telephone_moh') formdata = { "telephone": phone, "national_id": nid, "email": self.navb.kw.get('email'), "surname": self.navb.kw.get('surname'), "given_name": self.navb.kw.get('given_name'), "sex_pk": self.navb.kw.get('sex'), "role_pk": self.navb.kw.get('role'), "education_level_pk": self.navb.kw.get('edu_level'), "date_of_birth": self.navb.make_time(self.navb.kw.get('dob')), "join_date": self.navb.make_time(self.navb.kw.get('djoin')), "language_pk": self.navb.kw.get('language'), "nation_pk": self.navb.kw.get('user_nation'), "province_pk": self.navb.kw.get('user_province'), "district_pk": self.navb.kw.get('user_district'), "referral_facility_pk": self.navb.kw.get('user_hospital'), "facility_pk": self.navb.kw.get('user_facility'), "location_level_pk": self.navb.kw.get('user_area_level'), "sector_pk": self.navb.kw.get('user_sector'), "cell_pk": self.navb.kw.get('user_cell'), "village_pk": self.navb.kw.get('user_village'), "is_active": True, "is_correct": True } #print "\nFORM: ", formdata, "\n" message, user = Enduser.get_or_create(formdata) self.navb.kw = {} genders = Enduser.get_genders() roles = Enduser.get_roles() langs = Enduser.get_languages() education_levels = Enduser.get_education_levels() area_levels = Enduser.get_location_levels() return [ genders, roles, education_levels, area_levels, langs, message, user ]
def get_tables(self): cnds = self.navb.conditions() #;print cnds if self.navb.kw.get("search") and self.navb.kw.get("identity"): mkw = "%%%s%%" % self.navb.kw.get('identity').strip() if self.navb.kw.get("search") == 'nid': cnds.update({"national_id LIKE %s": mkw}) if self.navb.kw.get("search") == 'sim': cnds.update({"telephone LIKE %s": mkw}) exts = {} attrs = [(x.indexcol, x.code.lower(), x.name) for x in Enduser.get_roles()] cnds, markup, cols = self.navb.neater_tables( cnds=cnds, extras=[ ('indexcol', 'ID'), ('national_id', 'National ID'), ('telephone', 'Telephone'), ('surname', 'Surname'), ('given_name', 'Given Name'), ('role_pk', 'Role'), ('email', 'Email'), ('is_active', 'Is Active'), #('last_seen', 'Last Seen'), ('province_pk', 'Province'), ('district_pk', 'District'), ('referral_facility_pk', 'Hospital'), ('facility_pk', 'Health Centre'), ('sector_pk', 'Sector'), ('cell_pk', 'Cell'), ('village_pk', 'Village'), ]) markup.update({ 'action': lambda x, _, __: '<a href="/dashboards/updateuser?id=%s">Edit %s</a>' % (x, x), }) markup.update({ 'role_pk': lambda x, _, __: '%s' % (Enduser.get_role_name(x)) }) markup.update({ 'indexcol': lambda x, _, __: '<a href="/dashboards/report?tbl=chw&id=%s">View</a> | \ <a href="/dashboards/activate?action=activate&id=%s">Activate</a> | \ <a href="/dashboards/activate?action=deactivate&id=%s">Deactivate</a>' % (x, x, x), }) sc = self.navb.kw.get('subcat') #print cnds, markup, cols, sc, attrs DESCRI = [] USERDICT = {y[1]: (y[0], y[2]) for y in attrs} INDICS = [] group = "User" title = "User List" if self.navb.kw.get('subcat') and self.navb.kw.get('subcat') in [ makecol(x[1]) for x in attrs ]: cnds.update( {'role_pk = %s': USERDICT[self.navb.kw.get('subcat')][0]}) INDICS = [(self.navb.kw.get('subcat'), USERDICT[self.navb.kw.get('subcat')][1])] group = USERDICT[self.navb.kw.get('subcat')][1] dcols = [x[0] for x in cols] #print cnds nat = Enduser.fetch_user_table(cnds, dcols) #DESCRI.append((group, title)) desc = 'Users%s' % (' (%s)' % (self.navb.find_descr( DESCRI + INDICS, sc or self.navb.kw.get('subcat')))) #print INDICS, title, group, attrs, "NAT: ", nat[0].__dict__ return (title, desc, group, attrs, markup, cols, nat)
#print user.telephone, text sent = Enduser.send_message(user.telephone, text) except Exception, e: unsents.append(user.telephone) continue if len(unsents) > 0: message = ','.join(u for u in unsents) message = 'The message has not been delivered to: %s' % message else: message = 'The message you sent has been delivered successfully. Thanks.' #print "\nRESPONSE: ", message, "\n", cnds, "\n" self.navb.kw = {} roles = Enduser.get_roles() return [roles, message] def upload_users(self): cnds = self.navb.conditions() message = '' errors = [] if self.navb.kw.get("users_list"): file_of_users = self.navb.kw.get('users_list') try: #print "File: ", file_of_users.file, file_of_users.file.name ourfile = process_import_file(file_of_users, self.navb.user.indexcol, datetime.datetime.now()) #print "OUR FILE ON DISK: " , ourfile errs = upload_users_indb(ourfile[1])