def profile(request, username): user = User.objects.get(username=username) user_profile = UserProfile.objects.get(user=user) env = common_env() env['user_'] = user env['user_profile'] = user_profile return render(request, 'users/profile.html', env)
def suggest(request): error_message = None env = common_env() if request.method == 'POST': form = SuggestCharityForm(request.POST) if form.is_valid(): try: charity = Charity( name=form.cleaned_data['name'], url=form.cleaned_data['url'], description=form.cleaned_data['description'], suggester=request.user, status=STATUS.PENDING) charity.save() except IntegrityError: error_message = \ "That charity has already been suggested, thanks." else: return render(request, 'charities/suggest_done.html', env) else: form = SuggestCharityForm() env['form'] = form env['error_message'] = error_message return render(request, 'charities/suggest.html', env)
def rsvp(request): saved = False updated = False if request.method == 'POST': form = RSVPForm(request.POST) if form.is_valid(): email = form.cleaned_data['email'] will_attend = form.cleaned_data['will_attend'] try: rsvp = RSVP.objects.get(email=email) updated = True except: rsvp = RSVP() saved = True rsvp.email = email rsvp.will_attend = will_attend rsvp.save() else: form = RSVPForm() env = common_env() env['form'] = form env['saved'] = saved env['updated'] = updated return render(request, "messaging/rsvp.html", env)
def sign_in(request): error_message = None if request.method == 'POST': form = SignInForm(request.POST) if form.is_valid(): user = authenticate(username=form.cleaned_data['user_name'], password=form.cleaned_data['password']) if user: try: user_profile = UserProfile.objects.get(user=user) if user.is_active and user_profile: login(request, user) next_url = form.cleaned_data['next'] if not next_url.startswith('/'): raise PermissionDenied return HttpResponseRedirect(next_url) else: error_message = "Account disabled" except: error_message = "You must sign up before signing in" else: error_message = "Bad username or password" else: next_url = request.GET.get('next') or reverse('blog-home') form = SignInForm(initial={'next': next_url}) env = common_env() env['form'] = form env['error_message'] = error_message return render(request, 'users/signin.html', env)
def page(request, path): if request.user.is_superuser: page = get_object_or_404(Page, path=path) else: page = get_object_or_404(Page, path=path, status=STATUS.PUBLISHED) env = common_env() env['page'] = page return render(request, 'wiki/page.html', env)
def tag(request, slug): all_entries = Entry.objects.filter(tags__slug=slug, status=STATUS.PUBLISHED).order_by("-pub_date") page = request.GET.get("page", 1) env = common_env() env["entries"] = _get_paginated_entries(all_entries, page, 10) env["slug"] = slug return render(request, "blog/tag.html", env)
def page(request, path): if request.user.has_perms('wiki.add_page'): page = get_object_or_404(Page, path=path) else: page = get_object_or_404(Page, path=path, status=STATUS.PUBLISHED) env = common_env() env['page'] = page return render(request, 'wiki/page.html', env)
def index(request): all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).order_by("-pub_date") page = request.GET.get("page", 1) env = common_env() env["entries"] = _get_paginated_entries(all_entries, page, 5) env["formats"] = FORMAT return render(request, "blog/index.html", env)
def email(request, entry_id): if request.user.is_superuser: entry = Entry.objects.get(pk=entry_id) else: entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED) env = common_env() env["entry"] = entry env["formats"] = FORMAT return render(request, "blog/notification_email_html.html", env)
def entry(request, entry_id): if request.user.has_perm('blog.add_entry'): entry = Entry.objects.get(pk=entry_id) else: entry = get_object_or_404(Entry, pk=entry_id, status=STATUS.PUBLISHED) env = common_env() env['entry'] = entry env['formats'] = FORMAT return render(request, 'blog/entry.html', env)
def tag(request, slug): all_entries = Entry.objects.filter(tags__slug=slug, status=STATUS.PUBLISHED).order_by('-pub_date') page = request.GET.get('page', 1) env = common_env() env['entries'] = _get_paginated_entries(all_entries, page, 10) env['slug'] = slug return render(request, 'blog/tag.html', env)
def entry(request, entry_id): if request.user.is_superuser: entry = Entry.objects.get(pk=entry_id) else: entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED) env = common_env() env['entry'] = entry env['formats'] = FORMAT return render(request, 'blog/entry.html', env)
def index(request): all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).\ order_by('-pub_date') page = request.GET.get('page', 1) env = common_env() env['entries'] = _get_paginated_entries(all_entries, page, 5) env['formats'] = FORMAT return render(request, 'blog/index.html', env)
def email(request, entry_id): if request.user.has_perm('blog.add_entry'): entry = Entry.objects.get(pk=entry_id) else: entry = Entry.objects.get(pk=entry_id, status=STATUS.PUBLISHED) env = common_env() env['entry'] = entry env['formats'] = FORMAT return render(request, 'blog/notification_email_html.html', env)
def index(request): all_entries = Entry.objects.filter(status=STATUS.PUBLISHED).\ order_by('-pub_date') page = request.GET.get('page', 1) env = common_env() env['entries'] = _get_paginated_entries(all_entries, page, 5) env['formats'] = FORMAT if request.GET.get('format', '') == 'json': return HttpResponse(serializers.serialize('json', all_entries), mimetype="application/json") else: return render(request, 'blog/index.html', env)
def edit_profile(request, username): user = User.objects.get(username=username) user_profile = UserProfile.objects.get(user=user) message = None if request.user != user: raise PermissionDenied elif request.method == 'POST': form = UserProfileForm(request.POST) if form.is_valid(): user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.email = form.cleaned_data['email'] if form.cleaned_data['password']: user.set_password(form.cleaned_data['password']) user_profile.tshirt = form.cleaned_data['tshirt'] user_profile.diet = form.cleaned_data['diet'] user_profile.description = form.cleaned_data['description'] user_profile.notify_by_email = form.cleaned_data['notify_by_email'] user.save() user_profile.save() message = 'Updated profile.' else: form = UserProfileForm(initial={ 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, 'tshirt': user_profile.tshirt, 'diet': user_profile.diet, 'description': user_profile.description, 'notify_by_email': user_profile.notify_by_email, }) env = common_env() env['form'] = form env['user_'] = user env['message'] = message env['user_profile'] = user_profile return render(request, 'users/edit_profile.html', env)
def sign_in(request): error_message = None backends = settings.AUTHENTICATION_BACKENDS form_class = SignInForm ldap_enabled = False site = Site.objects.get_current() if 'hackday.auth.backend.ActiveDirectoryBackend' in backends: form_class = ActiveDirectorySignInForm ldap_enabled = True if request.method == 'POST': form = form_class(request.POST) if form.is_valid(): user = authenticate(username=form.cleaned_data['user_name'], password=form.cleaned_data['password']) if user: try: user_profile = UserProfile.objects.get(user=user) if user.is_active and user_profile: login(request, user) next_url = form.cleaned_data['next'] if not next_url.startswith('/'): raise PermissionDenied return HttpResponseRedirect(next_url) else: error_message = "Account disabled" except: error_message = "You must sign up before signing in" else: error_message = "Bad username or password" else: next_url = request.GET.get('next') or reverse('blog-home') form = form_class(initial={'next': next_url}) backends = settings.AUTHENTICATION_BACKENDS env = common_env() env['form'] = form env['error_message'] = error_message env['ldap_enabled'] = ldap_enabled env['site_name'] = site.name return render(request, 'users/signin.html', env)
def sign_up(request): error_message = None if request.method == 'POST': form = SignUpForm(request.POST) if form.is_valid(): # Create the user try: user = User.objects.create_user( form.cleaned_data['user_name'], form.cleaned_data['email'], form.cleaned_data['password']) except IntegrityError: error_message = "That username is not available." else: user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.save() # Create the user profile user_profile = UserProfile( user=user, tshirt=form.cleaned_data['tshirt'], diet=form.cleaned_data['diet'], description=form.cleaned_data['description'], notify_by_email=form.cleaned_data['notify_by_email']) user_profile.save() # Log the user in user = authenticate(username=user.username, password=form.cleaned_data['password']) login(request, user) return HttpResponseRedirect(reverse('users-profile', args=[user.username])) # Redirect after POST else: form = SignUpForm() env = common_env() env['form'] = form env['error_message'] = error_message return render(request, 'users/signup.html', env)
def index(request): users = User.objects.exclude(last_name='', first_name='').\ order_by('last_name', 'first_name', 'username') env = common_env() env['users'] = users return render(request, 'users/index.html', env)
def index(request): charities = Charity.objects.filter(status=STATUS.APPROVED).order_by("name") env = common_env() env['charities'] = charities return render(request, 'charities/index.html', env)
def edit_profile(request, username): user = User.objects.get(username=username) user_profile = UserProfile.objects.get(user=user) message = None form_class = UserProfileForm backends = settings.AUTHENTICATION_BACKENDS update_user = True if 'hackday.auth.backend.ActiveDirectoryBackend' in backends: form_class = ActiveDirectoryUserProfileForm update_user = False if request.user != user: raise PermissionDenied elif request.method == 'POST': form = form_class(request.POST) if form.is_valid(): if update_user: user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.email = form.cleaned_data['email'] if form.cleaned_data['password']: user.set_password(form.cleaned_data['password']) user.save() user_profile.alternate_email = form.cleaned_data['alternate_email'] user_profile.phone = form.cleaned_data['phone'] user_profile.tshirt = form.cleaned_data['tshirt'] user_profile.diet = form.cleaned_data['diet'] user_profile.location = form.cleaned_data['location'] user_profile.description = form.cleaned_data['description'] # user_profile.notes = form.cleaned_data['notes'] user_profile.notify_by_email = form.cleaned_data['notify_by_email'] user_profile.dinner_required = form.cleaned_data['dinner_required'] user_profile.breakfast_required = form.cleaned_data['breakfast_required'] user_profile.save() message = 'Updated profile.' else: form = form_class(initial={ 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, 'alternate_email': user_profile.alternate_email, 'phone': user_profile.phone, 'tshirt': user_profile.tshirt, 'diet': user_profile.diet, 'location': user_profile.location, 'description': user_profile.description, # 'notes': user_profile.notes, 'notify_by_email': user_profile.notify_by_email, 'dinner_required': user_profile.dinner_required, 'breakfast_required': user_profile.breakfast_required, }) env = common_env() env['form'] = form env['user_'] = user env['message'] = message env['user_profile'] = user_profile return render(request, 'users/edit_profile.html', env)
def sign_up(request): error_message = None backends = settings.AUTHENTICATION_BACKENDS form_class = SignUpForm create_user = True # the AD backend makes users on login and fills in name and email for us # so we don't need those fields on the form if 'hackday.auth.backend.ActiveDirectoryBackend' in backends: form_class = ActiveDirectorySignUpForm create_user = False if request.method == 'POST': form = form_class(request.POST) if form.is_valid(): if create_user: # Create the user try: user = User.objects.create_user( form.cleaned_data['user_name'], form.cleaned_data['email'], form.cleaned_data['password']) except IntegrityError: error_message = "That username is not available." else: user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.save() else: user = authenticate(username=form.cleaned_data['user_name'], password=form.cleaned_data['password']) if not user: error_message = "Invalid username or password." if not error_message: # Create the user profile user_profile = UserProfile( user=user, alternate_email=form.cleaned_data['alternate_email'], phone=form.cleaned_data['phone'], tshirt=form.cleaned_data['tshirt'], diet=form.cleaned_data['diet'], location=form.cleaned_data['location'], description=form.cleaned_data['description'], notify_by_email=form.cleaned_data['notify_by_email'], dinner_required=form.cleaned_data['dinner_required'], breakfast_required=form.cleaned_data['breakfast_required']) try: user_profile.save() except IntegrityError: error_message = "That user has already registered." else: # Log the user in user = authenticate(username=user.username, password=form.cleaned_data['password']) login(request, user) return HttpResponseRedirect(reverse('users-profile', args=[user.username])) # Redirect after POST else: form = form_class() env = common_env() env['ldap_enabled'] = not create_user env['form'] = form env['error_message'] = error_message return render(request, 'users/signup.html', env)
def sign_out(request): logout(request) env = common_env() return render(request, 'users/signout.html', env)