def delete_member(self, id): m = Member(id) for t in m.transactions: trec = Transaction(t['id']) trec.delete() m.delete() print("deleted row", id)
def Start(self): while True: try: self.pods = self.kube.GetPods() exists = self.CheckForPrimaryMongo() if exists == True: print( 'Watcher.CheckForPrimaryMongo: PRIMARY ALREADY IN REPLICASET' ) self.primary = False elif exists == False: member = Member(_id=None, IP='127.0.0.1', priority=None) alive = member.CheckIfAlive() if alive == True: primary = member.CheckIfPodIsPrimary() if primary == True: self.primary = True print( 'Watcher.CheckForPrimaryMongo: POD IS PRIMARY') elif primary == False: print( 'Watcher.CheckForPrimaryMongo: NO PRIMARY IN REPLICASET' ) self.mongo.HoldElection(self) if self.primary == True: self.CheckCurrentMongoPods() time.sleep(5) except Exception as error: print('Watcher.Start: ERROR - {}'.format(error)) time.sleep(5)
async def handleRoomCreation(ws, initObj, setRoom): if "name" in initObj and initObj["name"].strip() != "": gm = GameManager(initObj["packs"], initObj["questions"], initObj["answers"]) while gm.joinCode in games: gm.regenJoinCode() m = Member(ws, initObj["name"]) gm.addMember(m) games[gm.joinCode] = gm setRoom(gm.joinCode) await send_object( ws, { "action": "roomMade", "joinCode": gm.joinCode, "setName": initObj["name"] }) nextObj = await recv_object(ws) if "action" in nextObj: if nextObj["action"] == "startGame": await asyncio.wait( [games[gm.joinCode].startGame(), m.runGameLoop()], return_when=asyncio.FIRST_COMPLETED) else: await send_object(ws, { "action": "error", "content": "Please make sure to set a name." })
def get_member(id): """Display the form in R/O mode for a member""" member = Member(id) qr_file = "images/XCJ_{}.png".format(id) if member['status'] == "OK": try: last_modif_time = stat(qr_file).st_mtime make_qr_code = datetime.fromtimestamp( last_modif_time) < datetime.now().replace( minute=0, hour=0, second=0, microsecond=0) except (FileNotFoundError, AttributeError) as err: make_qr_code = True if make_qr_code: qrcode_text = member.encode_qrcode() img = make_qrcode(qrcode_text) img.save(qr_file) member.qrcode_is_valid = True else: member.qrcode_is_valid = False copy2("images/emoji-not-happy.jpg", qr_file) # overwrite any previous QR code .png return template("member", member=member, read_only=True, session=session_manager.get_session())
def __init__(self, position=Vec(0, 0, 0), rotation=Vec(0, 0, 0), offset=Vec(0, 0, 0), alignment=Vec(0, 0, 0), geometry=Surface()): self.geometry = geometry Member.__init__(self, position, rotation, offset, alignment) self.footprint = defaultdict(list)
def test_upd_member_profile(self, keep_member=False): """Positive test: Update a new Member""" # create a member new_id = self.test_add_new_member(keep_member=True) member = Member(id=new_id) current_avatarUrl = member["avatar_url"] current_username = member["username"] # call update API url = "{}/member/openid/{}".format(self.base_url, member["openid"]) print("Path:", url) patch = { "op": "update", "data": { "avatarUrl": "https://new/link/to_avatar.html", 'nickName': "new_nickName", 'tags': 5 } } response = requests.patch(url, json=patch) self.assertEqual(200, response.status_code) result = response.json() self.print_JSON(result, title="test_upd_member_profile:") # fetch record again member = Member(id=new_id) upd_avatarUrl = member["avatar_url"] upd_username = member["username"] self.assertNotEqual(current_avatarUrl, upd_avatarUrl) self.assertNotEqual(current_username, upd_username) self.assertEqual("new_nickName", upd_username) if not keep_member: self.delete_member(new_id)
def do_login(): """ Fetch the login/password from the form and check this couple against the tb_user table """ username = request.forms.get('username').lower() password = request.forms.get('password') if not username or not password: return template('login.tpl', error='Please specify username and password', session=session_manager.get_session()) session = session_manager.get_session() new_user = Member() new_user_id = new_user.select('users', columns='id', username=username, passwd=password) if new_user_id: new_user.get_from_db(id=new_user_id['id']) session['valid'] = True session['user'] = new_user session_manager.save(session) else: session['valid'] = False session['user'] = {} session_manager.save(session) return template('login.tpl', error='Username or password is invalid', session=session_manager.get_session()) # redirect(request.get_cookie('validuserloginredirect', '/member/{}'.format(new_user['id']))) redirect('/member/{}'.format(new_user['id']))
def get_daypass(): """Present a calendar to choose the daypass pariod (from/to) - default is today""" session = session_manager.get_session() if request.method == "POST": from_date = request.forms['from_date'] until_date = request.forms.get( 'until_date', from_date) # one day pass only --> no until_date _from_date = datetime.strptime(from_date, "%Y-%m-%d") _until_date = datetime.strptime(until_date, "%Y-%m-%d") if (_until_date - _from_date).days <= 7: admin = Member(id=1) qr_code = admin.encode_qrcode(version=3, from_date=_from_date, until_date=_until_date) img_qrcode = make_qrcode(qr_code) qr_code_file = "images/XCJ_{}.png".format(from_date) img_qrcode.save(qr_code_file) # print("QR code:", qr_code_file) if request.forms.get('email'): admin.email_qrcode( qr_code_file, "from {} until {}".format(from_date, until_date), request.forms['email']) else: qr_code_file = "images/emoji-not-happy.jpg" else: # GET qr_code_file = None from_date, until_date = date.today(), date.today() # only admin can set 'until date' period = (from_date, until_date if session['user'].is_admin else "") return template("daypass", qr_code=qr_code_file, period=period, session=session)
def admin_member_create(): """ メンバー新規登録処理 """ # 投稿されたデータを取得 name = request.form.get('name') email = request.form.get('email') # create_at = datetime.now() # create_at = create_at.strftime("%Y/%m/%d %H:%M:%S") # FlaskはマイクロフレームワークなのでForm Validationとかもない # とりあえず単純にリダイレクトするだけ if not name or not email: print("name or email parameter error") return redirect(url_for('admin_member_add')) loose_email_match = re.match(r"^[^@:]+@[^:]+\..+$", str(email), re.IGNORECASE) if not loose_email_match: print("email is not email pattern") return redirect(url_for('admin_member_add')) member = Member(redis_client) if member.unique(email): print("email is not unique") return redirect(url_for('admin_member_add')) member.add(email, name) # save_data(name, comment, create_at) # print('name: ' + name + ', email: ' + email) # 保存後はトップにリダイレクト return redirect(url_for('admin_index'))
def load_members(names): """ Load the game owners as members in database. :param names: the list of the game owner names :return: """ for name in names: # Ignore empty names if not name.strip(): continue member = MemberRepo.get_member_by_name(name) if member is None: # Get the number of the last registered member last_num = 0 last_member = MemberRepo.get_last_member() if last_member is not None: last_num = last_member.number num = str(int(last_num) + 1) now = datetime.datetime.today().strftime('%Y-%m-%d') member = Member(num, name, now) # Insert new member logging.debug('Insert member ' + member.to_string()) MemberRepo.insert_member(member) else: logging.debug('Update member ' + member.to_string()) MemberRepo.update_member(member)
def admin_lecture_end(): """ 講義終了画面 POST : 終了 GET : 設定画面表示 """ if request.method == 'POST': # 講義終了 redis_client.set("lecture_start", 0) return redirect(url_for('admin_index')) else: member = Member(redis_client) member_list = member.get_all_data() # 現在の講師のmidを取得 lecturer_data = redis_client.hgetall("lecturer") # print(lecturer_data) if not lecturer_data: # print("empty") return render_template('admin/lecture_end.html', lecturer=None) ret = "" for member in member_list: if int(lecturer_data["lid"]) == int(member["id"]): ret = member["name"] break return render_template('admin/lecture_end.html', lecturer=ret)
def ticket(): # Validate inputs required = ['first-name', 'sure-name', 'email', 'promise'] if not request.form: return redirect("http://*****:*****@]+@[^@]+\.[^@]+", request.form['email']): return redirect("http://localhost:1313/podlesi-fest/#tickets&err", code=302) #Insert data and send message member = Member(request.form['first-name'], request.form['sure-name'], request.form['email'], request.form['promise'], request.form['tel']) if member.sendMail()[0]: return redirect("http://localhost:1313/podlesi-fest/#tickets&ok", code=302) else: return redirect("http://localhost:1313/podlesi-fest/#tickets&err", code=302)
def test_d_has_many_activities_returns_true_with_more_than_one_activity( self): member = Member('id', 'first_name', 'last_name', 'birth_date') member.add_activity('activity1', 'location1', 'start_date1', 'cost1') member.add_activity('activity2', 'location2', 'start_date2', 'cost2') returned = member.has_many_activities() assert returned == True
def admin_get_score(l_id): """ 指定された講師(l_id)のスコアを返す """ member = Member(redis_client) member_data = member.get_data(l_id) # 講義のスコアデータのキーはscore:講師のメンバーID:ワイルドカード(*)で取得 score_key_list = redis_client.keys("score:" + l_id + "*") result = [] total = 0 count = 0 average = 0 # メンバーが設定したスコアデータを取得 # for enum, score_key in enumerate(score_key_list): for score_key in score_key_list: data = {} # data["lid"] = redis_client.hget(score_key, "lid") data["mid"] = redis_client.hget(score_key, "mid") data["name"] = redis_client.hget(score_key, "name") data["score"] = redis_client.hget(score_key, "score") data["times"] = redis_client.hget(score_key, "times") data["create_at"] = redis_client.hget(score_key, "create_at") total += float(data["score"]) count += 1 result.append(data) if count > 0: average = round(total / count, 2) return render_template('admin/score.html', score=result, lecturer=member_data["name"], average=average)
def admin_member_del(): """ メンバー削除画面 """ member = Member(redis_client) member_list = member.get_all_data() return render_template('admin/member_del.html', member_list=member_list)
def admin_behind(): attrs = [int(time.strftime("%m")), int(time.strftime("%Y")), int(time.strftime("%m")) - 1, int(time.strftime("%Y")), int(time.strftime("%m")) - 2, int(time.strftime("%Y")), int(time.strftime("%m")) - 3, int(time.strftime("%Y"))] #handle months being last year # ugh, should really have this as a function... if attrs[2] <= 0: attrs[2] = 12 + attrs[2] attrs[3] = attrs[3] - 1 if attrs[4] <= 0: attrs[4] = 12 + attrs[4] attrs[5] = attrs[5] - 1 if attrs[6] <= 0: attrs[6] = 12 + attrs[6] attrs[7] = attrs[7] - 1 attrs = tuple(attrs) db = get_db() cur = db.cursor() cur.execute("SELECT username FROM member WHERE username NOT IN (SELECT username FROM payment WHERE (month == ? AND year == ?) OR (month == ? AND year == ?) OR (month == ? AND year == ?) OR (month == ? AND year == ?)) AND username NOT IN (SELECT user FROM dismembered)", attrs) users = cur.fetchall() behind = [] errors = "" for user in users: m = Member(user[0]) try: last_payment = m.get_payments()[0] year, month = last_payment[0], last_payment[1] except Exception as e: year, month = None, None errors += str(e) + "\n" behind.append((m.username, m.profile["realname"], m.profile["email"], year, month)) return render_template('admin_behind.html', behind=behind, errors=errors)
def test_add_payment(self, keep_member=False): """Positive test: add a payment to a new Member""" # create a member new_id = self.test_add_new_member(keep_member=True) member = Member(id=new_id, db_access="../../Private/db_access.data") # call update API url = "{}/member/openid/{}".format(self.base_url, member["openid"]) print("Path:", url) patch = { "op": "add", "data": { 'paidTime': datetime.now().strftime('%Y%m%d%H%M'), # '201803121929', 'payIndex': 'this_is_craaaazy_____', 'CNYAmount': 123.45, 'payType': 'DONATION' } } response = requests.patch(url, json=patch) self.assertEqual(200, response.status_code) result = response.json() self.print_JSON(result, title="test_add_payment:") # fetch record again member = Member(id=new_id, db_access="../../Private/db_access.data") print(member.transactions) if not keep_member: self.delete_member(new_id)
def copy_group(self, ac, old_key, new_email): page_token = True all_members = [] while page_token: data = ac.service.members().list({'pageToken': page_token}, groupKey=old_key).execute() all_members.extend(data.get('members')) page_token = data.get('nextPageToken') new_group = self.create(ac, new_email) for member in all_members: Member.members_insert(ac, member['email'], new_email) return new_group # { # "kind": "admin#directory#group", # "id": string, # "etag": etag, # "email": string, # "name": string, # "directMembersCount": long, # "description": string, # "adminCreated": boolean, # "aliases": [ # string # ], # "nonEditableAliases": [ # string # ] # }
def member_list(): """ メンバー一覧取得 """ member = Member(redis_client) member_list = member.get_all_data() return modify_response_http_header(jsonify({"members": member_list}))
def hub_home(): m = Member(session['username']) return render_template('home.html', profile=m.get_profile(), status=Status().status, paid=m.is_paid(), username=session['username'], payment_history=m.payment_history())
def profile_emails(): m = Member(session['username']) uprefs = m.get_email_prefs() db = get_db() cur = db.cursor() cur.execute("SELECT code, description FROM email_events") events = cur.fetchall() return render_template("email_prefs.html", uprefs=uprefs, events=events)
def __init__(self, domain): Member.__init__(self) finders = get_finders(domain) if not finders: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self.set_members(finders) self._cache = FinderCache(domain)
def build_volunteers(self) -> Dict: """ This parses the input file and builds the members and their roles. :return: List of users """ volunteers = {'leaders': list(), 'members': list()} with open(self.config.input_file, 'r') as csv_file: reader = csv.DictReader(csv_file, delimiter=',') uid = 1 for row in reader: roles = set() rids = 0 frameworks = set() languages = set() portfolios = list() experience = 0 if row["In general, I would consider myself capable of being a designer volunteer"] == "Yes": if len(row["My portfolio's URL is"]) > 0: portfolios.append(row["My portfolio's URL is"]) role = self.build_designer(uid, row) experience += role.experience frameworks.update(role.skills) roles.add(role) rids += role.rid if row["In general, I would consider myself capable of being a volunteer developer"] == "Yes": if len(row["Github URL"]) > 0: portfolios.append(row["Github URL"]) role = self.build_developer(row) frameworks.update(role.frameworks) languages.update(role.languages) experience += role.experience roles.add(role) rids += role.rid if row["I would like to be considered for a team lead role"] == "Yes": role = Leader( Volunteers.parse_experience(row[ "How long have you been managing people/product(s)"] )) roles.add(role) rids += role.rid member = Member(uid, row['Username'], portfolios, roles, Member.build_ranking(self.config.taxonomy, frameworks=frameworks, languages=languages, rids=rids), experience=experience) if rids & RoleEnums.LEADER: volunteers['leaders'].append(member) else: volunteers['members'].append(member) uid += 1 return volunteers
def func(*args, **kwargs): if 'username' in session: user = Member(session["username"]) if user.is_admin(): return f(*args, **kwargs) else: return abort(403) else: return redirect("/hub/login")
def add_new_member( self ): new_member = Member() x,y = Helper.nonintersecting_coordinates( new_member.radius, self.get_positions() ) new_member.x = x new_member.y = y new_member.generation = self.generations self.member_count += 1 new_member.member_num = self.member_count return new_member
def create_full_member(data): member = Member() columns = data.shape[1] vectors = [] for column_index in range(0, columns): member.features.append(column_index) vectors.append(data[:, column_index]) member.map = np.column_stack(vectors) return member
def test_choose_member(self): m1 = Member("foo") m2 = Member("Bar") m3 = Member("Baz") members = [m1, m2, m3] member = choose_member_from(members) assert_that([member.display_name for member in members]).contains(member.display_name)
def cross_breed(father, mother, data): member = Member() features = list(set(mother.features + father.features)) vectors = [] for column_index in range(0, len(features)): if np.random.randint(0, 2) > 0: member.features.append(column_index) vectors.append(data[:, column_index]) member.map = np.column_stack(vectors) return member
def __init__(self, username, password, name, age, address, library_card_number): #create an empty user object Member.__init__(self, name, age, address, library_card_number) #user inherited member class self.check_password( password ) #every user object must check and confirm their password. self.username = username self.password = password
def test_simple_table(self): table = [ {'time': '9:00am', 'name': 'Intro to Python', 'instructor': 'Matt Morrison'}, {'time': '10:30am', 'name': 'TDD for Dummies', 'instructor': 'Matt Morrison'}, {'time': '12pm', 'name': 'Lunch', 'instructor': None}, {'time': '1:30pm', 'name':"There's a 'D' in Jango", 'instructor': 'Matt Morrison'}, ] member = Member(last_name="St.Clair", first_name="Wesley", nickname="Wes", company="The IMT Group", job_title="IT Manager", twitter_handle="@wes_stclair", photo="me.jpg" ) member.create_badge3(table)
def email_my_qrcode(id): """Email a member its QR code""" member = Member(id=id) if member['email']: try: member.email_qrcode() except ValueError as err: redirect('/member/{}?msg=Error: No Email sent {}"'.format(id, err)) else: redirect('/member/{}?msg=Email sent"'.format(id)) redirect('/member/{}?msg=Error: No Email address"'.format(id))
def __init__(self, outfit_name: str, guild_id: int, member_role_id: int, *args, **kwargs): super().__init__(*args, **kwargs) self.guild_id = guild_id self.member_role_id = member_role_id self.outfit = Outfit(name=outfit_name) self.database = Database(tag=self.outfit.alias)() self.Member = Member(database=self.database.members) self.Ops = Ops self.ops_list = dict() self.add_commands()
def update_member_status(self, member_id): """Update the status of a member to OK or NOT_OK accordingly to the mambership payment""" result = self.fetch( "select max(valid_until) as max_valid from transactions where member_id=%s and right(type,10)='MEMBERSHIP'", params=(member_id, )) try: new_status = 'OK' if result['max_valid'] >= date.today( ) else 'NOT_OK' except TypeError: new_status = 'NOT_OK' member = Member(member_id=member_id) member.update(id=member_id, status=new_status)
def admin_member_list(): """ メンバー一覧画面 """ member = Member(redis_client) member_list = member.get_all_data() # lambdaを使ってsort処理で実行させる式を作成 # pythonではdefは文でlambdaは式なので、単一式として定義できるものに限る # lambda 引数1,引数2.., : 引数を使う式 member_list = sorted(member_list, key=lambda member: int(member['id'])) # print(member_list) return render_template('admin/member_list.html', member_list=member_list)
def show_record(cursor, query): try: cursor.execute(query) records = cursor.fetchall() if cursor.rowcount == 0: print("No Matching Records") return record = records[0] member = Member().create_from_record(record) member.print_full() return member except mysql.connector.Error as err: print(err)
def admin_profile(): user = Member(session['username']) if request.method == 'GET': return render_template('admin_profile_edit.html', profile=Member(request.args['u']).get_profile()) elif request.method == 'POST': updatable = ['realname', 'nickname', 'email', 'twitter', 'irc', 'github', 'address'] update = {} for x in request.form: if x in updatable: update[x] = None if request.form[x] == 'None' else request.form[x] m = Member(request.form['username']) m.update_profile(update) return redirect('/hub/admin')
def admin_balance(): if 'username' in session: user = Member(session['username']) if not user.is_admin(): abort(403) if request.method == 'GET': return render_template('admin_balance.html') elif request.method == 'POST': # update stuff pass else: return redirect('/hub/login')
def admin_score_link(): """ 各講師の点数確認ページへのリンク """ member = Member(redis_client) member_list = member.get_all_data() ret = [] for member in member_list: data = {"name": member["name"], "url": "/admin/msdg/" + member["id"] + "/score"} ret.append(data) return render_template('admin/score_link.html', member_list=ret)
def _getCurrentMembers(self): try: conf = self.db.admin.command('replSetGetConfig', 1) for member in conf["conf"]['members']: newMember = Member( member['_id'], member['host'].split(':')[0], # Get Host IP member['priority']) state = newMember.CheckIfAlive() if state == True: self.members.append(newMember) print('Members._getCurrentMembers: {}'.format(self.members)) except Exception as error: print('Members._getCurrentMembers: WARN {}'.format(error))
def signup(): if request.method == 'POST': for id_info in mem_info: if request.form['id'] == id_info.get_id(): return render_template("signup.html", message = "id is aready existed") elif request.form['pass1'] != request.form['pass2']: return render_template("signup.html", message = "passwards is not same") else: mem = Member() mem.set(request.form['id'],request.form['pass1']) mem_info.append(mem) return render_template("login.html", message = "sign up completed!") return render_template("signup.html")
def acceptConnection(self, sock): conn, addr = sock.accept() self.log("Client connected from " + str(addr)) conn.setblocking(False) data = types.SimpleNamespace(addr=addr, inb=b"", outb=b"") events = selectors.EVENT_READ | selectors.EVENT_WRITE self.selector.register(conn, events, data=data) appendNum = self.memberJoinCounter self.memberJoinCounter += 1 name = "guest" + str(appendNum) member = Member(data, name) self.memberList.append(member) self.sendInfoToMember(member, "Username is", member.getUserName())
def __init__(self, domain): Member.__init__(self) mappers = get_mappers(domain) if not mappers: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self.set_members(mappers) self._server = Member() servers = get_servers(domain) if not servers: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self._server.set_members(servers) self._cache = MapperCache(self._server, domain)
def mutate(source, data): member = Member() vectors = [] random = create_new_member(data) for column_index in range(0, len(source.features)): if np.random.randint(0, 10) > 3: member.features.append(column_index) vectors.append(data[:, column_index]) for column_index in range(0, len(random.features)): if np.random.randint(0, 10) > 6: member.features.append(column_index) vectors.append(data[:, column_index]) member.map = np.column_stack(vectors) return member
def admin_member_remove(): """ メンバー削除処理 """ # 投稿されたデータを取得 member_id = request.form.get('member') if not member_id: print("member parameter error") return redirect(url_for('admin_member_del')) member = Member(redis_client) member.delete(member_id) # 削除後はトップにリダイレクト return redirect(url_for('admin_index'))
def make_event_qrcode(id): """Generate the QR Code of an Event""" trans = Transaction(id) event_member = Member(id=trans["member_id"]) if event_member["status"] == "OK" and event_member["gender"] == 5: # use the event_member to set all necessary information to generate a QR Code Version 3 qrcode = event_member.encode_qrcode(version=3, from_date=trans["valid_from"], until_date=trans["valid_until"]) img_qrcode = make_qrcode(qrcode) qr_file = "images/XCJevent_{}.png".format(id) img_qrcode.save(qr_file) return "<img src='/{}' />".format(qr_file) else: return "<h2>This event has not a valid status or gender.</h2>"
def cleanse_and_validate(web_form): cleansed_form = sanitize(web_form) for reqid in list(cleansed_form.keys()): tmp = copy.deepcopy(cleansed_form[reqid]) missing_field = False for f in _allowed_fields: try: tmp.pop(f+'_'+reqid) except KeyError: if f not in _actions and f not in Member.optional_field_names(): missing_field = True if len(tmp) or missing_field: cleansed_form.pop(reqid) else: tmp = copy.deepcopy(cleansed_form[reqid]) if 'del_'+reqid in tmp: if 'mod_'+reqid in tmp: print("<strong>No action taken on request id {}: ".format(reqid) +"Cannot both modify and cancel a request.</strong></br>") cleansed_form.pop(reqid) if 'reg_'+reqid in tmp: print("<strong>No action taken on request id {}: ".format(reqid) +"Cannot both register and cancel a request.</strong></br>") cleansed_form.pop(reqid) scrubbed = {} for reqid in cleansed_form: kv = cleansed_form[reqid] for k in kv: scrubbed[k] = kv[k] return scrubbed
def createMember(self): name = input("\nIngrese Nombre: ") surname = input("Ingrese Apellido: ") age = int(input("Ingrese Edad: ")) celular = int(input("Ingrese Celular: ")) member = Member(name, surname, age, celular) return member
def members(self): # TODO we should not just trust this information, a member can put any address in their # dispersy-identity message. The database should contain a column with a 'verified' flag. # This flag is only set when a handshake was successfull. return [Member.get_instance(str(public_key)) for public_key, in list(DispersyDatabase.get_instance().execute(u"SELECT public_key FROM user WHERE host = ? AND port = ? -- AND verified = 1", (unicode(self._address[0]), self._address[1])))]
def login_menu(self): """ Display Login options for users to choose. :return: True """ print("\n**** LOGIN MENU ****") print( "1. Login as BDO \n2. Login as GPM \n3. Login as Member\n4. Exit") choice = input("Choose: ") if choice == '1': BlockDevelopmentOfficer(self.conn).login_bdo() elif choice == '2': GramPanchayatMember(self.conn).login_gpm() elif choice == '3': Member(self.conn).login_member() elif choice == '4': print("\nExiting...") self.conn.close() else: print("\nWrong Input! Try again.") if choice != '4': self.login_menu() return True
def admin_lecturer(): """ 講師設定画面 POST : 設定 GET : 設定画面表示 """ if request.method == 'POST': # 講義中であれば講義終了画面にリダイレクト # 講義中での講師変更はできない start_flg = redis_client.get("lecture_start") # print(start_flg) if start_flg and int(start_flg) == 1: return redirect(url_for('admin_lecture_end')) lecturer_mid = request.form.get('member') times = request.form.get('times') data = {"lid": lecturer_mid, "times": times} redis_client.hmset("lecturer", data) # 講義も開始したことにする redis_client.set("lecture_start", 1) return redirect(url_for('admin_score_link')) else: member = Member(redis_client) member_list = member.get_all_data() # 現在の講師のmidを取得 lecturer_data = redis_client.hgetall("lecturer") # print(lecturer_data) if not lecturer_data: # print("empty") return render_template('admin/lecturer.html', member_list=member_list) ret = [] for member in member_list: # print(member) if int(lecturer_data["lid"]) == int(member["id"]): member["selected"] = True else: member["selected"] = False ret.append(member) member_list = ret # print(member_list) return render_template('admin/lecturer.html', member_list=member_list)
def join(): if request.method == 'POST': new_account = Member() new_id = request.form['nid'] new_pw = request.form['npw'] re_pw = request.form['rpw'] if new_pw == re_pw and new_id not in id_db: new_account.set(new_id, new_pw) id_db[new_account.get_id()] = new_account.get_pw() comment = "Congrats! You've made a new ID" elif new_pw != re_pw: comment = "Please, check your password!" elif new_id in id_db: comment = "Please, use another ID" return render_template('join.html', comment = comment) return render_template('join.html')
def admin_payment(): member = Member(request.form['username']) if 'month' in request.form.keys(): try: month = int(request.form['month']) if not(1 <= month <= 12): return render_template('message.html', title='Fail', message='That is an unacceptable month') year = int(request.form['year']) delta_yr = datetime.date.today().year - year if not(-1 <= delta_yr <= 1): return render_template('message.html', title='Fail', message='That is an unacceptable year') member.add_payment(month, year, session['username']) return redirect('/hub/admin') except Exception as e: return render_template('message.html', title='Fail', message=str(e)) else: now = datetime.datetime.now() member.add_payment(now.month, now.year, session['username']) return redirect('/hub/admin')
def member_get_lecturer(): """ 現在の講師の情報を返す 設定されていない、またはメンバーにいない場合はFalse """ # 現在の講師のmidを取得 lecturer_data = redis_client.hgetall("lecturer") if not lecturer_data: return modify_response_http_header(jsonify({"lecturer": False})) else: # print(lecturer_mid) member = Member(redis_client) member_data = member.get_data(lecturer_data["lid"]) if not member_data: return modify_response_http_header(jsonify({"lecturer": False})) lecturer_data["name"] = member_data["name"] # print(member_data) # return jsonify({"lecturer": lecturer_mid}) return modify_response_http_header(jsonify({"lecturer": lecturer_data}))
def __init__(self, server, domain): self._cache = {} self._server = server self._domain = domain self._finder = Member() finders = get_finders(domain) if not finders: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self._finder.set_members(finders) self._thread = Thread(target=self._update_finders) self._thread.start()
class MapperServer(Member): def __init__(self, domain): Member.__init__(self) mappers = get_mappers(domain) if not mappers: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self.set_members(mappers) self._server = Member() servers = get_servers(domain) if not servers: log_err(self, 'failed to initialize') raise Exception(log_get(self, 'failed to initialize')) self._server.set_members(servers) self._cache = MapperCache(self._server, domain) def set_servers(self, servers): return self._server.set_members(servers, sort=True) def add_servers(self, servers, pos): return self._server.add_members(servers, pos, sort=True) def check_servers(self, servers, pos): return self._server.check_members(servers, pos) def get_servers(self, pos): return self._server.get_members(pos) def get(self, key): return self._cache.get(key)
def profile_email_toggle(event): m = Member(session['username']) if m.get_email_prefs()[event]: m.set_email_pref(event, 0) else: m.set_email_pref(event, 1) return redirect('/hub/profile/emails')
def joinPrincipal(self, principalId, approved=True, _td = timedelta(milliseconds=1)): if principalId not in self: member = Member() event.notify(ObjectCreatedEvent(member)) self[principalId] = member joined = parseDatetimetz(str(datetime.now())) while joined in self.joined: joined = joined + _td member.joined = joined self.joined[joined] = principalId if not approved: member.approved = False self.notapproved.insert(principalId) else: event.notify(MemberApprovedEvent(member)) event.notify(ObjectModifiedEvent(self.__parent__)) updatePermissions(self.__parent__)