コード例 #1
0
 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)
コード例 #2
0
ファイル: CKAPPv1.py プロジェクト: apwatts/ckapp
    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()
コード例 #3
0
ファイル: data.py プロジェクト: marmstrongNAR/URL-Shortener
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
コード例 #4
0
ファイル: auth.py プロジェクト: marmstrongNAR/URL-Shortener
    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
コード例 #5
0
ファイル: auth.py プロジェクト: marmstrongNAR/URL-Shortener
    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
コード例 #6
0
ファイル: CKAPPv1.py プロジェクト: apwatts/ckapp
    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")
コード例 #7
0
ファイル: CKAPPv1.py プロジェクト: apwatts/ckapp
    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"
コード例 #8
0
    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
コード例 #9
0
    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
コード例 #10
0
    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'
コード例 #11
0
    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
コード例 #12
0
ファイル: data.py プロジェクト: marmstrongNAR/URL-Shortener
    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()
コード例 #13
0
ファイル: data.py プロジェクト: marmstrongNAR/URL-Shortener
    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()
コード例 #14
0
    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'
コード例 #15
0
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)
コード例 #16
0
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()

コード例 #17
0
ファイル: CKAPPv1.py プロジェクト: apwatts/ckapp
 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)