def add_user(): if not current_user.is_admin: flash('You are not admin user!') return redirect(url_for('main.record_all')) user_form = NewUserForm() new_user = AppUser() msg = '' if user_form.validate_on_submit(): new_user.username = user_form.username.data password = user_form.password.data if AppUser.query.filter_by(username=new_user.username).count() > 1: flash('User name already exists! %s ' % new_user.username, 'error') return render_template('add_user.html', form=user_form) # print("%s:%s:%s" % (username, password, generate_password_hash('redhat'))) # print("%s:%s:%s" % (username, password, generate_password_hash('redhat'))) new_user.password = generate_password_hash(password) new_user.email = user_form.email.data new_user.role = user_form.role.data data_db.session.add(new_user) data_db.session.commit() flash('Add user successfully %s ' % new_user.username, 'info') return redirect(url_for('main.login')) return render_template('add_user.html', form=user_form)
def new_account_setup(): form = NewUserForm() if request.method == 'POST': if form.validate() == False: flash('All fields are required.') return render_template('new_account_setup.html', domains_list=settings.list_of_local_domains, domains_tag=settings.local_domain_paths, form=form) else: gAPI = google_api.gAPI(request.form.get('org_domain'), form.username.data, form.password_alpha.data) gAPI.create_new_user(form.givenname.data, form.familyname.data) if request.form.get('ADcheckbox') == 'on': LDAP.addUser(str(form.username.data), str(form.givenname.data), str(form.familyname.data), str(form.email.data), str(form.password_alpha.data), str(request.form.get('org_name'))) if request.form.get('hiddenGroupsList') == '': pass else: for group in eval(request.form.get('hiddenGroupsList')): group_dn = group[0] user_dn = 'CN=' + str(form.givenname.data) + ' ' + str(form.familyname.data) + ',OU=' + str(request.form.get('org_name')) + ',' + settings.local_DC LDAP.addUsertoGroups(group_dn, user_dn) else: pass return redirect(url_for('home')) elif request.method == 'GET': return render_template('new_account_setup.html', domains_list=settings.list_of_local_domains, domains_tag=settings.local_domain_paths, form=form, ADorg_list=LDAP.retrieveADGroups())
def register(): """ Shows a form for user to register. When the form is submitted, registers the user with the input the user submitted. rtype: str """ # if already logged in, go to user's page current_username = session.get("username", None) if current_username: return redirect(f"/users/{current_username}") form = NewUserForm() if form.validate_on_submit(): # get data submitted username = form.username.data password = form.password.data email = form.email.data first_name = form.first_name.data last_name = form.last_name.data # register user user = User.register(username, password, email, first_name, last_name) session["username"] = user.username db.session.add(user) # might break if username has already been used try: db.session.commit() except IntegrityError: form.username.errors.append("That username already exists") return render_template("register.html", form=form) return redirect(f"/users/{username}") return render_template("register.html", form=form)
def users_new_form(): """Show a form to create a new user""" form = NewUserForm() return render_template('new_user.html', form=form)
def newUser(): form = NewUserForm() if form.validate_on_submit(): a = int(form.age.data) if a < 10: a = 0 elif a >= 10 and a < 20: a = 1 elif a >= 20 and a < 30: a = 2 elif a >= 30 and a < 40: a = 3 elif a >= 40 and a < 50: a = 4 elif a >= 50 and a < 60: a = 5 elif a >= 60 and a < 70: a = 6 elif a >= 70: a = 7 occ_dict = {0: 'administrator', 1: 'artist', 2: 'doctor', 3: 'educator', 4: 'engineer', 5: 'entertainment', 6: 'executive', 7: 'healthcare', 8: 'homemaker', 9: 'lawyer', 10: 'librarian', 11: 'marketing', 12: 'none', 13: 'other', 14: 'programmer', 15: 'retired', 16: 'salesman', 17: 'scientist', 18: 'student', 19: 'technician', 20: 'writer'} age_group_show = show_movies_by_age_group(a, 20) age_predictions = recommend_movies_by_age_group(preds_age_group, a, items, user_movie_ratings_age_group, 20) occ_dict.get(int(form.occupation.data)) occ_show = show_movies_by_occ(occ_dict.get(int(form.occupation.data)), 20) occ_predictions = recommend_movies_by_occupation(preds_occupation, int(form.occupation.data), items, 20) return render_template('show_new_user.html', age=form.age.data, occupation=occ_dict.get(int(form.occupation.data)), age_group_show=age_group_show.to_html(), age_recommendation=age_predictions[['movie title', 'release date', 'rank']].to_html(), occ_show=occ_show.to_html(), occ_recommendation=occ_predictions[['movie title', 'release date', 'rank']].to_html() # gender_recommendation=gender_predictions[['movie title', 'release date', 'rank']].to_html() ) else: if form.errors: flash(message=form.errors.values()) return render_template('new.html', form=form)
def add_user(): if not current_user.admin: return redirect(url_for('nope')) return render_template("new_user.html", form=NewUserForm())
def new_user(): form = NewUserForm() return render_template('new.html', form=form)
def schedule(request): schedule=[] today = date.today() while today.weekday() >= 5 or ScheduleDay.objects.filter(date=today).count() > 0 and ScheduleDay.objects.get(date=today).day_off: today += timedelta(1) schedule_day = None if ScheduleDay.objects.filter(date=today).count() > 0: schedule_day = ScheduleDay.objects.get(date=today) else: done = False one_day = timedelta(1) today_dt = datetime.combine(today, time()) today_dt -= one_day new_date = today_dt.date() days_ellapsed = 0 day = 0 while not done: if new_date.weekday() < 5 and ScheduleDay.objects.filter(date=new_date).count() == 0: days_ellapsed += 1 elif new_date.weekday() < 5 and not ScheduleDay.objects.get(date=new_date).day_off: done = True day = (ScheduleDay.objects.get(date=new_date).day + days_ellapsed) % 7 new_dt = datetime.combine(new_date, time()) new_dt -= one_day new_date = new_dt.date() schedule_day = ScheduleDay(date=today, day_off=False, day=day, schedule="") schedule_day.save() print(schedule_day.day) if (schedule_day.schedule == "" schedule_day.schedule = master_schedule[schedule_day.day] s if len(schedule_day.period_set.all()) == 0: for i in range(len(schedule_day.schedule)): period = Period(day=schedule_day, period_number=i, period_letter=schedule_day.schedule[i:i + 1]) period.save() schedule.append([["Day " + str(schedule_day.day + 1)]]) for period in schedule_day.schedule: schedule.append([[period]]) return render(request, "scanner/schedule.html", {'schedule_table': schedule}) @not_login_required def checkin (request): messages = [] if request.method == 'POST': form = ScanForm(request.POST) if form.is_valid(): data = form.cleaned_data idnum = data["scan"] if len(Person.objects.filter(id=idnum)) != 0: person = Person.objects.get(id=idnum) checkins = Checkin.objects.filter(person=person, completed=False) if len(checkins) == 0: messages.append("Successfully checked in " + person.first_name + " " + person.last_name) new_checkin = Checkin(person=person, checkin=datetime.now(), checkout=datetime.now()) new_checkin.save() else: for obj in checkins: obj.checkout = datetime.now() obj.completed = True obj.save() person.hours += float((obj.checkout - obj.checkin).total_seconds()) / 3600 person.save() messages.append("Successfully checked out " + person.first_name + " " + person.last_name) form = ScanForm() return render(request, "scanner/checkin.html", {"form": form, "messages": messages}) @not_login_required def scan (request, idnum): idnum = int(idnum) if idnum < 10000 or idnum > 20000: return user(request, idnum) if idnum > 10000 and idnum < 20000: return checkout_item(request, idnum) return render(request, "scanner/item.html", {"idnum": idnum}) @not_login_required def user (request, idnum): if len(Person.objects.filter(id=idnum)) == 0: if request.method == 'POST': form = NewUserForm(request.POST) if form.is_valid(): person = form.save(commit=False) person.id = idnum person.save() else: form = NewUserForm() return render(request, "scanner/newuser.html", {"idnum": idnum, "form": form}) person = Person.objects.get(id=idnum) messages = [] if request.method == 'POST': form = ScanForm(request.POST) if form.is_valid(): if len(CheckoutItem.objects.filter(id=form.cleaned_data["scan"])) > 0: item = CheckoutItem.objects.get(id=form.cleaned_data["scan"]) if len(Checkout.objects.filter(person=person, item=item, checked_in=False)) > 0: for checkout in Checkout.objects.filter(person=person, item=item, checked_in=False): checkout.checked_in = True checkout.date_returned = datetime.now() checkout.save() messages.append(item.name + " successfully checked in.") else: new_checkout = Checkout(person=person, item=CheckoutItem.objects.get(id=form.cleaned_data["scan"]), date_checked_out=datetime.now() , date_due=datetime.now() + timedelta(CheckoutItem.objects.get(id=form.cleaned_data["scan"]).default_checkout_time)) new_checkout.save() messages.append(item.name + " successfully checked out.") else: messages.append("That item is not in the database.") form = ScanForm() return render(request, "scanner/user.html", {"person": person, "form": form, "checkouts": Checkout.objects.filter(person=person, checked_in=False), "messages": messages}) @not_login_required def checkout_item (request, idnum): if len(CheckoutItem.objects.filter(id=idnum)) == 0: if request.method == 'POST': form = NewItemForm(request.POST) if form.is_valid(): item = form.save(commit=False) item.id = idnum item.save() else: form = NewItemForm() return render(request, "scanner/newitem.html", {"idnum": idnum, "form": form}) else: form = NewItemForm() return render(request, "scanner/newitem.html", {"idnum": idnum, "form": form}) return render(request, "scanner/item.html", {"item": CheckoutItem.objects.get(id=idnum)}) @not_login_required def checkout(request, personid, itemid): return render(request, "scanner/item.html", {"item": CheckoutItem.objects.get(id=itemid)}) @login_required def admin(request): person = request.user.leadershipmember return render(request, "scanner/admin.html", {"person": person}) @not_login_required def admin_login(request): if request.method == 'POST': form = AdminLoginForm(request.POST) if form.is_valid(): data = form.cleaned_data username = data["id"] password = data["password"] user = authenticate(username=username, password=password) if user is not None: login(request, user) return HttpResponseRedirect(reverse("admin")) form = AdminLoginForm() return render(request, "scanner/admin_login.html", {"form": form}) @login_required def admin_add_leadership(request): if not request.user.leadershipmember.can_add_leadership_members: return HttpResponseRedirect(reverse("admin")) if request.method == 'POST': form = NewLeadershipMemberForm(request.POST) if form.is_valid(): data = form.cleaned_data person = Person.objects.get(id=data["id"]) if len(User.objects.filter(username=data["id"])) == 0: print(data["password"]) user = User.objects.create_user(data["id"], data["email"], data["password"]) user.save() user = User.objects.get(username=data["id"]) leadershipmember = LeadershipMember(first_name=person.first_name, last_name=person.last_name, id=person.id, hours=person.hours, periods=data["periods"], user=user) person.delete() leadershipmember.save() return HttpResponseRedirect(reverse("admin")) form = NewLeadershipMemberForm() return render(request, "scanner/admin_add_leadership.html", {"form": form}) @login_required def admin_change_permissions(request): if not request.user.leadershipmember.can_change_leadership_permissions: return HttpResponseRedirect(reverse("admin")) leadershipmembers = LeadershipMember.objects.exclude(id=request.user.leadershipmember.id) return render(request, "scanner/admin_change_permissions.html", {'leadershipmembers': leadershipmembers}) @login_required def admin_edit_info(request): if request.method == 'POST': form = LeadershipEditInfoForm(request.POST, instance=request.user.leadershipmember) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("admin")) form = LeadershipEditInfoForm(instance=request.user.leadershipmember) return render(request, "scanner/admin_edit_info.html", {"form": form}) @login_required def admin_change_user_permissions(request, id): if not request.user.leadershipmember.can_change_leadership_permissions: return HttpResponseRedirect(reverse("admin")) if request.method == 'POST': form = ChangePermissionsForm(request.POST) if form.is_valid(): print("1") data = form.cleaned_data lm = LeadershipMember.objects.get(id=id) lm.can_add_leadership_members = data["can_add_leadership_members"] lm.can_change_leadership_permissions = data["can_change_leadership_permissions"] lm.save() return HttpResponseRedirect(reverse("admin change permissions")) person = request.user.leadershipmember form = ChangePermissionsForm(instance=LeadershipMember.objects.get(id=id)) return render(request, "scanner/admin_change_user_permissions.html", {"form": form, "person": person, "id": id})
def show_registration_form(): """Route to get and show registration form to create new users.""" form = NewUserForm() return render_template('users/new_user_form.html', form=form)
def get_signup_form(): form = NewUserForm() return render_template('/signup_and_login/signup.html', form=form)
def homepage(): """home page""" login_form = LoginForm() new_user_form = NewUserForm() return render_template('home.html', login_form=login_form, new_user_form=new_user_form)