def userlist_au_post(req): ''' handles list form submission ''' # get filtered signups and update form = req.POST ids = ast.literal_eval(form.get('ids')) # conv. str repr. of lst. to lst. objs = Signup.objects.filter(id__in=ids) utils.update_signups(objs, form) # perform the appropriate add-user actions for each signup for signup in objs: utils.adduser(signup, ldap_password=req.session['ldap_password']) # return to the list if len(utils.get_signups()) > 0: return redirect('/userlist_au/new') elif len(utils.get_signups_limbo()) > 0: return redirect('/userlist_au/limbo') else: return redirect('/userlist_au/added')
def userlist_au(req, listtype='new'): ''' list all new signups, added users or limbo-users ''' headers, num_non_course = utils.get_colheaders() colheaders = [] i = 0 for colheader in headers: i += 1 cbx = None colheaders.append(Ci(colheader, cbx)) rows_ids = [] ids = [] # filter signup object set (and ui state variables message and buttonstate) based on action parameter buttondisplay = '' uploaddisplay = '' if listtype == 'new': signups = utils.get_signups() message = 'New signups:' elif listtype == 'added': signups = utils.get_signups_added() message = 'Added:' buttondisplay = 'none' uploaddisplay = 'none' elif listtype == 'limbo': signups = utils.get_signups_limbo() message = 'Limbo signups - edit to fix errors, then re-submit:' uploaddisplay = 'none' else: raise Exception('signupper.views.userlist_au: undefined action') for s in signups: ids.append(s.id) row = [] use_textbox = not s.added_ldap row.append(Ci(s.created.strftime("%Y%m%d"))) row.append(Ci(s.firstname, txt=use_textbox, header='firstname')) row.append(Ci(s.lastname, txt=use_textbox, header='lastname')) row.append(Ci(s.email, txt=use_textbox, header='email')) row.append(Ci(s.username, txt=use_textbox, header='username')) row.append(Ci(s.password, header='passwd')) # courses columns - new/limbo or added signup state for course in settings.COURSES + settings.COURSES_MANDATORY: if not listtype == 'added' and not s.added_moodle: if course in s.courses: row.append(Ci(course, cbx='checked')) else: row.append(Ci(course, cbx='unchecked')) else: if course in s.courses: row.append(Ci('enrolled')) else: row.append(Ci('')) # buttons if listtype == 'new': #row.append(Ci('edit', btn=True)) row.append(Ci('delete', btn=True)) # fail string if listtype == 'limbo': row.append(Ci(s.fail_str)) rows_ids.append([row, str(s.id)]) return render(req, 'userlist_au.html', {'next': '/userlist_au-post', 'uploadnext': '/upload_au_post', 'ids': ids, 'rows_ids': rows_ids, 'colheaders': colheaders, 'message': message, 'buttondisplay': buttondisplay, 'uploaddisplay': uploaddisplay})
# Store message print('Storing message...') store_message(db, 'coderbot', username, response_text) # Update Status print('Updating status...') update_status(db, username, status_updated) else: print('Invalid Response') # Check unread messages while True: time.sleep(1) try: print('Validate signups!') for student in get_signups(db): # Sleep 1 sec! time.sleep(1) username = student['username'] try: text(student) except: print('Error signing up student %s' % (username)) print('Updating status...') update_status(db, username, 11) print('Check unread!') for contact in driver.get_unread(): # Sleep 1 sec! time.sleep(1) # Get phone