def signup(request): # Optional queries membership_type = request.GET.get('type', None) membership_level = request.GET.get('level', None) payment_frequency = request.GET.get('freq', None) form = f.CreateAccountForm(initial={'membership_type': membership_type, 'membership_level': membership_level, 'payment_frequency': payment_frequency}) if request.method == 'POST': form = f.CreateAccountForm(data=request.POST, files=request.FILES) if form.is_valid(): response = redirect('update') if form.cleaned_data.get('membership_level') != 'A': """ If SKU exists in the query string and the SKU fits with the membership type, add that product to the cart and redirect the user to the checkout """ membership_type = form.cleaned_data.get('membership_type')[:3].upper() sku = '%s-%s-%s' % (membership_type, form.cleaned_data.get('membership_level'), form.cleaned_data.get('payment_frequency')) variation = ProductVariation.objects.get(sku=sku) request.cart.add_item(variation, 1) recalculate_cart(request) response = redirect('shop_checkout') form.save() subscribe(request, 'af67fb20e3', form.cleaned_data.get('email')) # Members list if form.cleaned_data.get('in_mailing_list'): subscribe(request, '8aebc01ca2', form.cleaned_data.get('email')) # News Letter new_user = authenticate(username=form.cleaned_data.get('username'), password=form.cleaned_data.get('password1')) auth_login(request, new_user) # Send welcome message send_welcome(new_user) send_moderate("New user signed up.", context={'user': new_user}) success(request, 'User created successfully! Welcome to the BCCF community %s' % form.instance.get_full_name()) return response context = RequestContext(request, locals()) return render_to_response('accounts/account_signup.html', {}, context)
def profile_update(request, tab='home'): user = request.user profile = user.profile photo_form = f.PhotoForm() order = profile.membership_order membership = profile.membership_product_variation expiration = profile.membership_expiration_datetime page = request.GET.get('page', 1) if tab == 'orders': from cartridge.shop.models import Order """ Grab all the orders that the user has made """ objects = Order.objects.filter(user_id=user.pk) orders = get_page(objects, page) elif tab == 'home': """ Grabs the proper upgrade products for the current user. """ upgrades = get_upgrades(profile) elif tab == 'members': """ Grabs all the members asssociated with this account """ objects = User.objects.filter(profile__organization=profile) members = get_page(objects, page) elif tab == 'attending': from bccf.models import EventRegistration """ Grabs all the events the user is registered for. """ objects = EventRegistration.objects.filter(user=user) events = get_page(objects, page) if request.method == 'POST': if 'update-photo' in request.POST: photo_form = f.PhotoForm(request.POST, request.FILES, instance=profile) if photo_form.is_valid(): user = photo_form.save() success(request, 'Photo Updated Successfully') photo_form = f.PhotoForm() else: if tab == 'account': form = f.AccountInformationForm(request.POST, instance=user) elif tab == 'contact': form = f.ContactInformationForm(request.POST, instance=profile) elif tab == 'profile': form = f.ProfessionalProfileForm(request.POST, instance=profile) elif tab == 'social': form = f.SocialMediaForm(request.POST, instance=profile) elif tab == 'preferences': form = f.AccountPreferencesForm(request.POST, instance=profile) elif tab == 'forum': form = f.ForumPreferencesForm(request.POST, request.FILES, instance=profile) elif tab == 'adduser': form = f.AddUserForm(request.POST) elif tab == 'register': form = f.RegisterUserForm(request, data=request.POST) request.session['register_selected_members'] = request.POST.getlist('members') request.session['register_selected_event'] = request.POST.get('event') return redirect(reverse('register-event')) if form.is_valid(): ping() user = form.save() success(request, 'Account Updated Successfully') if tab == 'preferences': if form.cleaned_data.get('in_mailing_list'): subscribe(request, '8aebc01ca2', request.user.email) # News letter else: unsubscribe(request, '8aebc01ca2', request.user.email) elif tab == 'adduser': form = None else: error(request, 'Please fix the form errors below') context = RequestContext(request, locals()) return render_to_response('accounts/accounts_base_profile_update.html', {}, context)