def logged_in(request, user=0): user = int(user) #if the use tries to switch to another user during his session, log him out if request.session['user_id'] != user: return logout_user(request) b_user = models.BarUser.for_u_id(user) user = b_user.user bar = b_user.bar broadcast_success = request.GET.get('broadcast_popup_success', None) if broadcast_success is not None: broadcast_success = (int(broadcast_success) == 1) dashboard_portlet = DashboardPortlet(request, bar, user) broadcast_portlet = BroadcastPortlet(request, bar, user) queued_portlet = QueuedCouponsPortlet(request, bar, user) profile_portlet = BarProfilePortlet(request, bar, user) stats_portlet = ViewStatsPortlet(request, bar, user) payments_portlet = PaymentsPortlet(request, bar, user) help_portlet = HelpPortlet(request) tpl_vars = {'app_name' : h.parse_config_file().get('app_name'), 'bar' : bar, 'nav_tabs' : e.NavigationTabs, 'selected_tab' : request.GET.get('selected_tab', e.NavigationTabs.DASHBOARD.verbose), 'portlets' : [dashboard_portlet, broadcast_portlet, queued_portlet, profile_portlet, stats_portlet, payments_portlet, help_portlet], 'broadcast_hidden' : broadcast_success is None, 'broadcast_success' : broadcast_success} context = RequestContext(request, tpl_vars) return render_to_response('pages/logged_in.html', context)
def timezone_by_lat_lng(cls, lat_lng): """a method to get the timezone based on latitude longitude pair""" config = h.parse_config_file() request_url = config["api_timezone_url"] request_user = config["geonames_user"] params = {"lat": lat_lng[0], "lng": lat_lng[1], "username": request_user} request = url.Request(h.external_url(request_url, params=params)) response = url.urlopen(request) timezone_json = response.read() timezone = json.loads(timezone_json)["timezoneId"] return timezone
def home(request): if request.user.is_authenticated(): return HttpResponseRedirect(reverse('barwatch.opentapp.barportal.views.logged_in', args=(request.user.id,))) login_hidden = True signup_hidden = True signup_success = request.GET.get('signup_success', False) login_form = forms.LoginForm() signup_form = forms.BarSignupForm({'form_name' : 'signup_form'}) if request.method == 'POST': form_name = request.POST.get('form_name', None) #signup submission if form_name == 'signup_form': signup_form = forms.BarSignupForm(request.POST, request.FILES) if signup_form.is_valid(): new_bar = signup_form.save(commit=False) username = signup_form.cleaned_data['username'] password = signup_form.cleaned_data['password'] email = signup_form.cleaned_data['email'] (lat, lng) = bar_loc.geocode_address(new_bar.address) bar_tz = bar_loc.timezone_by_lat_lng((lat, lng)) new_bar.bar_tz = bar_tz new_bar.latitude = str(lat) new_bar.longitude = str(lng) new_bar.save() new_user = User.objects.create_user(username, email=email, password=password) new_user.save() bar_user = models.BarUser(user=new_user, bar=new_bar) bar_user.save() mail_all = [DrinkUpEmail('registration_received', 'Thanks for signing up, we\'ve got your request', [new_user.email])] mail_all.append(DrinkUpEmail('registration_received_admin', 'Bar request pending', h.admin_emails(), context={'email':new_user.email, 'bar_name':new_bar.name, 'bar_phone':new_bar.phone, 'username':new_user.username, 'menu_submitted':new_bar.raw_menu is not None})) for mailer in mail_all: mailer.send() return HttpResponseRedirect(h.url(reverse('opentapp.barportal.views.home'), {'signup_success' : True})) else: signup_hidden = False else: #login submission login_form = forms.LoginForm(request.POST) if login_form.is_valid(): username = login_form.cleaned_data['username'] password = login_form.cleaned_data['password'] user = authenticate(username=username, password=password) login(request, user) request.session['user_id'] = request.user.id #we need to hold the original user in the session to make sure they dont try to switch users during the session return HttpResponseRedirect(reverse('opentapp.barportal.views.logged_in', args=(request.user.id,))) else: login_hidden = False tpl_vars = {'login_form' : login_form, 'login_hidden' : login_hidden, 'signup_form' : signup_form, 'signup_hidden' : signup_hidden, 'signup_success' : signup_success, 'app_name' : h.parse_config_file().get('app_name')} context = RequestContext(request, tpl_vars) return render_to_response('pages/frontpage.html', context)
def __init__(self, tpl_file, subject, to_emails, context={}): self.tpl_file = tpl_file self.subject = subject self.to_emails = to_emails self.from_email = h.parse_config_file().get('app_email') self.context = context
def test_parse_config_file(self): GEONAMES_USER = '******' config = h.parse_config_file() self.assertEqual(config['geonames_user'], GEONAMES_USER)