def __init__(self, **kwargs): global all_instructors all_instructors = DbCon().get_all_instrutors() self.programs = DbCon().get_programs() self.filter = 'Form' self.program = self.programs[0] super(Main_Screen, self).__init__(**kwargs)
def on_spinner_clicked(self, group_name): global current_date, student_group current_date = datetime.date.today() student_group = group_name # get student attendance #try: res = DbCon().get_students_and_absence_for_group(student_group) print ('get_students_and_absence_for_group ', student_group, " ", res) for row in res: STUD = row['student'] student_name = row['student_name'] g_form = DbCon().get_form_group(STUD) f_att = DbCon().get_attendance(STUD, g_form, current_date) g_att = DbCon().get_attendance(STUD, group_name, current_date) student_and_absence_dict[STUD] = {'form_att': f_att, 'student_name': student_name, 'group_att': g_att} #except: # student_and_absence_dict={} # print('failed to get student attendance') self.list_students()
def get_urls(id): get_url_list = f"SELECT long, short FROM urls WHERE userID = { id };" get_con = DbCon(get_url_list) urls_list = get_con.lookup_execute("long", "short") return urls_list
def create_user(self): if self.email and self.password: self.password = generate_password_hash(self.password, method='sha256') register_query = f"INSERT INTO users (email, password) VALUES ('{ self.email }', '{ self.password }');" register_con = DbCon(register_query) register_con.single_execute() else: return
def login_user(self): login_query = f"SELECT userID, password FROM users WHERE email = '{ self.email }';" login_con = DbCon(login_query) user_data = login_con.lookup_execute('userID', 'password') if len(user_data) == 0: return else: if check_password_hash(user_data[0]['password'], self.password): self.id = user_data[0]['userID'] return else: return
def on_enter(self): global instructor self.ids.lbl2.text = str(instructor) self.spinner_values = ('none',) self.ids.spinner_id.values = ['Select Class', ] self.ids.spinner_id.text = "Select Class" self.ids.layout_content.clear_widgets() try: student_groups_list = [] # student_groups = DbCon().get_student_groups(GlobalShared.INSTRUCTOR) student_groups = DbCon().get_student_groups(instructor) except: print("S") try: for group in student_groups: student_groups_list.append(group['parent']) self.ids.spinner_id.values = tuple(student_groups_list) except: print("for group in student_groups fail")
def press_login(self, username, password): global instructor """ check login details if ok open app else: popup 'there seems to be a problem please try again' """ # print (username, password) # if password and username: try: x = DbCon.check_user_password(username, password) print (x) instructor = username # sm.current = "screen_main" # # else: # print("# popup not found") # # else: # print("popup 'field missing'") except: instructor = 'david.gordon' # for testing sm.current = "screen_main"
def rnd_number_for_tabStudent_Group_Instructor(self): not_rnd = True while not_rnd: rnd_name = self.id_generator(10) sql = "SELECT COUNT(*) as my_count FROM `tabStudent Group Instructor` WHERE name ='%s'" % rnd_name not_rnd = DbCon().get_result(sql)[0]['my_count'] return rnd_name
def set_data(self, group_name, instructors): global list_students_in_group instructors_joined = ' | '.join(instructors) print('set_data: instructors', instructors_joined) self.id = group_name self.ids.lbl_group_name.text = group_name list_students_in_group = DbCon().get_student_for_group(group_name) self.ids.btn_student_pop.text = str(len(list_students_in_group)) self.ids.lbl_instructor_name.text = instructors_joined
def filter_spinner(self, text): global all_instructors print('filter_spinner ', text) # use text to update spinner list with alike entries filtered_instrutors = DbCon().get_filtered_instrutors(text) print(filtered_instrutors) self.ids.spinner_instructor_name.values = filtered_instrutors if self.ids.spinner_instructor_name.text not in filtered_instrutors: try: self.ids.spinner_instructor_name.text = filtered_instrutors[0] except: self.ids.spinner_instructor_name.text = 'select instructor'
def prepare_group_data(self): global global_group_data_dict # print ('get groups for program /n and instructors for each group') global_group_data_dict = {} if self.filter == 'Form': filter = " AND form_batch ='form'" elif self.filter == 'Class': filter = " AND COALESCE(form_batch, '') <> 'form'" else: filter = " AND form_batch = 'activity'" groups_in_program = DbCon().get_groups_in_program(self.program, filter) for group in groups_in_program: # attatch instructor_list to dictonary for this group global_group_data_dict[group] = DbCon().get_instructors_for_group( group) return global_group_data_dict
def del_url(self): del_existing = f"DELETE FROM urls WHERE short = '{self.short}' AND long = '{self.long}';" del_con = DbCon(del_existing) del_con.single_execute()
def add_url(self): add_new = f"INSERT INTO urls(long, short, userID) VALUES('{ self.long }', '{ self.short }, { self.creator }');" add_con = DbCon(add_new) add_con.single_execute()
def save(self): print('SAVE') """ prepare instructor_new__list by inspecting widgets in id:layout_contents iterate through instructor_init_list if name not in instructor_new__list Delete from table else: Delete from instructor_new__list iterate through any remaining in instructor_new__list Insert into table """ # prepare instructors_from_wdg_list by inspecting widgets in id:layout_contents instructors_from_wdg_list = [] instructor_widgets = self.ids.layout_insructors_content.children for wdg in instructor_widgets: name = wdg.ids.spinner_instructor_name.text if name != 'select instructor': instructors_from_wdg_list.append(name) print('instructors found in widgets', instructors_from_wdg_list) now = datetime.datetime.now() user_email = '*****@*****.**' # tempory # use user login email new_instuctors_list = [] # iterate through instructor_init_list print('iterate through initial list of instructors ', instructors_init_list) keep = [] for instructor_name in instructors_init_list: print('an init name') if instructor_name in instructors_from_wdg_list: keep.append(instructor_name) else: sql = "DELETE FROM `tabStudent Group Instructor` \ WHERE parent ='%s' \ AND instructor_name ='%s'" % (current_group, instructor_name) print('delete ', instructor_name) DbCon().exec(sql) for instructor_name in instructors_from_wdg_list: if instructor_name not in keep: sql = "INSERT INTO `tabStudent Group Instructor` \ (name, \ creation, modified, \ modified_by, owner, \ parent, instructor_name) \ VALUES ( '%s', \ '%s', '%s', \ '%s', '%s', \ '%s', '%s')" % ( self.rnd_number_for_tabStudent_Group_Instructor(), now, now, user_email, user_email, current_group, instructor_name) print('INSERT ', instructor_name) DbCon().exec(sql) # if no errors # on_release: root.manager.current = "main_screen" print('to main screen') sm.current = 'main_screen'
from flask import Flask from dbcon import DbCon import routes app = Flask(__name__, static_folder='public') app.secret_key = '#43fivikx' init_con = DbCon('') init_con.init_tables() # Routes app.add_url_rule('/', view_func=routes.home, methods=['GET']) app.add_url_rule('/signup', view_func=routes.registration, methods=['GET']) app.add_url_rule('/dashboard', view_func=routes.dashboard, methods=['GET']) app.add_url_rule('/auth/register', view_func=routes.register, methods=['POST']) app.add_url_rule('/auth/login', view_func=routes.login, methods=['POST']) app.add_url_rule('/product/addurl', view_func=routes.addurl, methods=['POST']) app.add_url_rule('/product/delurl', view_func=routes.delurl, methods=['POST']) if __name__ == '__main__': app.run(debug=True)
from http.server import HTTPServer, BaseHTTPRequestHandler try: from urlparse import urlparse, parse_qs except ImportError: from urllib.parse import urlparse, parse_qs from app import App from dbcon import DbCon import sys app = App(DbCon()) class WebLoggerHandler(BaseHTTPRequestHandler): def do_GET(self): print('> got:', self.path) qs = parse_qs(urlparse(self.path).query) if 'msg' in qs: msg = qs["msg"][0] else: msg = None if 'src' in qs: src = qs["src"][0] else: src = None if msg != None: app.send(src, msg) self.send_response(204) self.end_headers()
def on_submit(self): for stud in student_and_absence_dict: state = student_and_absence_dict[stud]['group_att'] student_name = student_and_absence_dict[stud]['student_name'] DbCon().upsert(state, stud, student_name, current_date, student_group)