def save(self): site=get_site() timezone=pytz.timezone(site.timezone) cleaned_data=self.cleaned_data profile=get_current_profile() if profile.userlevel > 9: credit_name, credit_link= "Staff", None status='approved' approved_on=datetime.now() else: credit_name, credit_link = profile.nickname, profile.link status='submitted' approved_on=None event=Event(title=cleaned_data.get("title"), link=cleaned_data.get("link") or None, description=cleaned_data.get("description")[:250] or None, start=timezone.localize(datetime.combine(cleaned_data.get("start_date"),cleaned_data.get("start_time"))), end=timezone.localize(datetime.combine(cleaned_data.get("end_date") or cleaned_data.get("start_date"),cleaned_data.get("end_time"))), location=cleaned_data.get("location") or None, submitted_by=get_current_profile(), status=status, site=get_site(), cost=cleaned_data.get("cost"), credit_name=credit_name, credit_link=credit_link, approved_on=approved_on, approved_by=profile, ) event.put() return event
def add_event(request): account=get_current_user() profile=get_current_profile() if request.method =='POST': form=EventBasicsForm(request.POST) if form.is_valid(): form.save() if profile.userlevel < 9: mail.send_mail(sender="Events bot ANGRY <*****@*****.**>", to="The Laziest Louts Ever <*****@*****.**>", #to="The Laziest Louts Ever <*****@*****.**>", subject="New Series Created, now get off your ass!", body=""" New Event! Need Review: http://events.datacommunitydc.org/events/queue/ The Angry Server. """) messages.add_message(request, messages.INFO, "Thanks for submitting an event! It's in <a href='events/queue/'>the queue</a> and will be reviewed soon") else: messages.add_message(request, messages.INFO, "Thanks! Once we review, it will be posted to main page!") request.site.expire_assets() #return redirect(reverse('front-page')) return render_to_response('events/add_success.html', locals(), context_instance=RequestContext(request)) else: form=EventBasicsForm() return render_to_response('events/add.html', locals(), context_instance=RequestContext(request))
def add_series(request): account = get_current_user() profile = get_current_profile() if request.method == 'POST': form = EventSeriesForm(request.POST) if form.is_valid(): form.save() if profile.userlevel < 9: mail.send_mail( sender="Events bot ANGRY <*****@*****.**>", to="The Laziest Louts Ever <*****@*****.**>", #to="The Laziest Louts Ever <*****@*****.**>", subject="New Series Created, now get off your ass!", body=""" New Event! Need Review: http://events.datacommunitydc.org/events/queue/ The Angry Server. """) messages.add_message( request, messages.INFO, "Thanks for submitting an event! It's in <a href='events/queue/'>the queue</a> and will be reviewed soon" ) else: messages.add_message(request, messages.INFO, "Event, added.") request.site.expire_assets() return redirect(reverse('front-page')) else: form = EventBasicsForm() return render_to_response('events/add.html', locals(), context_instance=RequestContext(request))
def save(self): cleaned_data = self.cleaned_data profile = get_current_profile() from models import ICalendarSource ical = ICalendarSource(site=get_site(), name=cleaned_data['name'], source_link=cleaned_data['link'] or None, ical_href=cleaned_data['ical'], submitted_by=profile, status='submitted', last_fetch=datetime(year=1970, month=1, day=1)) ical.put()
def save(self): cleaned_data=self.cleaned_data profile=get_current_profile() from models import ICalendarSource ical= ICalendarSource(site=get_site(), name=cleaned_data['name'], source_link=cleaned_data['link'] or None, ical_href=cleaned_data['ical'], submitted_by=profile, status='submitted', last_fetch=datetime(year=1970, month=1, day=1) ) ical.put()
def site_context(request): site=get_site() additional_context={'site': site, 'user':get_current_profile(), 'admin':users.is_current_user_admin(), 'logout':users.create_logout_url(reverse('account-signout')), 'links':Link.all().filter('status =','approved').fetch(20) } #additional_context['logo']=get_serving_url(str(site.original_logo.key()), 512) return additional_context
def clean(self): site=get_site() cleaned_data = self.cleaned_data nickname = cleaned_data.get("nickname") email = cleaned_data.get("email") profile=get_current_profile() existing_profile_with_slug=site.profile_set.filter('slug =', unicode(slugify(nickname))).get() existing_profile_with_email=site.profile_set.filter('email =', email).get() if (existing_profile_with_slug != None and existing_profile_with_slug.key() != profile.key()): msg = u"Someone else already took that nickname!" self._errors["nickname"] = ErrorList([msg]) del cleaned_data['nickname'] if (existing_profile_with_email != None and existing_profile_with_email.key() != profile.key()): msg = u"Someone has already registered with that email" self._errors["email"] = ErrorList([msg]) del cleaned_data['email'] return super(ProfileForm, self).clean()
def add_event(request): account=get_current_user() profile=get_current_profile() if request.method =='POST': form=EventBasicsForm(request.POST) if form.is_valid(): form.save() if profile.userlevel < 9: messages.add_message(request, messages.INFO, "Thanks for submitting an event! It's in <a href='events/queue/'>the queue</a> and will be reviewed soon") else: messages.add_message(request, messages.INFO, "Event, added.") request.site.expire_assets() return redirect(reverse('front-page')) else: form=EventBasicsForm() return render_to_response('events/add.html', locals(), context_instance=RequestContext(request))
def profile_setup(request): hostname=os.environ['HTTP_HOST'] dest=request.GET.get('continue', reverse('front-page')) user=get_current_user() profile=get_current_profile() if not profile: return HttpResponseRedirect(create_signin_url(reverse('account-edit'))) if request.method == 'POST': # If the form has been submitted... form = ProfileForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass save_profile(profile, form) return HttpResponseRedirect(dest) # Redirect after POST else: form = ProfileForm(initial=profile.profile_details) return(render_to_response('account/profile-setup.html', locals(), context_instance=RequestContext(request)))
def edit_profile(request): profile=get_current_profile() if request.method == 'POST': # If the form has been submitted... form = ProfileForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass save_profile(profile, form) messages.add_message(request, messages.INFO,"Your profile has been saved!") return HttpResponseRedirect('/') # Redirect after POST current_settings={'nickname':profile.nickname, 'email': profile.email, 'subscribe':profile.subscribes, 'link': profile.link} form=ProfileForm(current_settings) return(render_to_response('account/edit.html', locals(), context_instance=RequestContext(request)))
def profile_setup(request): hostname = os.environ['HTTP_HOST'] dest = request.GET.get('continue', reverse('front-page')) user = get_current_user() profile = get_current_profile() if not profile: return HttpResponseRedirect(create_signin_url(reverse('account-edit'))) if request.method == 'POST': # If the form has been submitted... form = ProfileForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass save_profile(profile, form) return HttpResponseRedirect(dest) # Redirect after POST else: form = ProfileForm(initial=profile.profile_details) return (render_to_response('account/profile-setup.html', locals(), context_instance=RequestContext(request)))
def edit_profile(request): profile = get_current_profile() if request.method == 'POST': # If the form has been submitted... form = ProfileForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass save_profile(profile, form) messages.add_message(request, messages.INFO, "Your profile has been saved!") return HttpResponseRedirect('/') # Redirect after POST current_settings = { 'nickname': profile.nickname, 'email': profile.email, 'subscribe': profile.subscribes, 'link': profile.link } form = ProfileForm(current_settings) return (render_to_response('account/edit.html', locals(), context_instance=RequestContext(request)))
def clean(self): site = get_site() cleaned_data = self.cleaned_data nickname = cleaned_data.get("nickname") email = cleaned_data.get("email") profile = get_current_profile() existing_profile_with_slug = site.profile_set.filter( 'slug =', unicode(slugify(nickname))).get() existing_profile_with_email = site.profile_set.filter( 'email =', email).get() if (existing_profile_with_slug != None and existing_profile_with_slug.key() != profile.key()): msg = u"Someone else already took that nickname!" self._errors["nickname"] = ErrorList([msg]) del cleaned_data['nickname'] if (existing_profile_with_email != None and existing_profile_with_email.key() != profile.key()): msg = u"Someone has already registered with that email" self._errors["email"] = ErrorList([msg]) del cleaned_data['email'] return super(ProfileForm, self).clean()
def add_event(request): account = get_current_user() profile = get_current_profile() if request.method == 'POST': form = EventBasicsForm(request.POST) if form.is_valid(): form.save() if profile.userlevel < 9: messages.add_message( request, messages.INFO, "Thanks for submitting an event! It's in <a href='events/queue/'>the queue</a> and will be reviewed soon" ) else: messages.add_message(request, messages.INFO, "Event, added.") request.site.expire_assets() return redirect(reverse('front-page')) else: form = EventBasicsForm() return render_to_response('events/add.html', locals(), context_instance=RequestContext(request))
def event_queue(request): def save_details(event): data=request.POST event.title=data['title'] event.link=data['link'] or None event.cost=data['cost'] or None tz=request.site.tz event.start=tz.localize(parser.parse(data['start'])) event.end=tz.localize(parser.parse(data['end'])) if request.POST.has_key('tags'): event.tags=[t.strip() for t in request.POST.get("tags","").lower().split(',')] event.put() timezone=pytz.timezone(request.site.timezone) pending_events=request.site.event_set.filter('status = ', 'submitted') today=utc.localize(datetime.utcnow()).astimezone(timezone).date() pending_events_future=pending_events.filter('local_start >=', today).order('local_start').fetch(50) if request.method == 'POST' and request.POST.has_key('button'): profile=get_current_profile() if request.POST['button'] == 'Reject' and (profile.userlevel == 10): event_results=request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() event.status="rejected-%s" % request.POST.get('rejection-reason','unspecified') event.put() messages.add_message(request, messages.INFO,'Rejected! Feels good, right?') if request.POST['button'] == 'Save': event_results=request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: save_details(event) messages.add_message(request, messages.INFO,'%s saved' % event.title) if request.POST['button'] == 'Approve': event_results= request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: event.status='approved' event.approved_by=profile event.approved_on=datetime.now() save_details(event) messages.add_message(request, messages.INFO,'%s approved' % event.title) if request.POST['button'] == 'Back to queue': event_results= request.site.event_set.filter(' __key__ =', db.Key(request.POST['event_key']) ) event=event_results.get() if profile.userlevel == 10: event.status='submitted' event.approved_by=None event.approved_on=None save_details(event) messages.add_message(request, messages.INFO,'%s sent back' % event.title) request.site.expire_assets() if request.POST.has_key('return'):return HttpResponseRedirect(request.POST['return']) pending_events=request.site.event_set.filter('status = ', 'submitted') has_pending_sources=submitted_icals=ICalendarSource.all().filter('status =', 'submitted').get() has_pending_links=Link.all().filter('status =','submitted').get() return render_to_response('events/queue.html', locals(), context_instance=RequestContext(request))
def event_queue(request): def save_details(event): data = request.POST event.title = data['title'] event.link = data['link'] or None event.cost = data['cost'] or None tz = request.site.tz event.start = tz.localize(parser.parse(data['start'])) event.end = tz.localize(parser.parse(data['end'])) if request.POST.has_key('tags'): event.tags = [ t.strip() for t in request.POST.get("tags", "").lower().split(',') ] event.put() timezone = pytz.timezone(request.site.timezone) pending_events = request.site.event_set.filter('status = ', 'submitted') today = utc.localize(datetime.utcnow()).astimezone(timezone).date() pending_events_future = pending_events.filter( 'local_start >=', today).order('local_start').fetch(50) if request.method == 'POST' and request.POST.has_key('button'): profile = get_current_profile() if request.POST['button'] == 'Reject' and (profile.userlevel == 10): event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() event.status = "rejected-%s" % request.POST.get( 'rejection-reason', 'unspecified') event.put() messages.add_message(request, messages.INFO, 'Rejected! Feels good, right?') if request.POST['button'] == 'Save': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: save_details(event) messages.add_message(request, messages.INFO, '%s saved' % event.title) if request.POST['button'] == 'Approve': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: event.status = 'approved' event.approved_by = profile event.approved_on = datetime.now() save_details(event) messages.add_message(request, messages.INFO, '%s approved' % event.title) if request.POST['button'] == 'Back to queue': event_results = request.site.event_set.filter( ' __key__ =', db.Key(request.POST['event_key'])) event = event_results.get() if profile.userlevel == 10: event.status = 'submitted' event.approved_by = None event.approved_on = None save_details(event) messages.add_message(request, messages.INFO, '%s sent back' % event.title) request.site.expire_assets() if request.POST.has_key('return'): return HttpResponseRedirect(request.POST['return']) pending_events = request.site.event_set.filter('status = ', 'submitted') has_pending_sources = submitted_icals = ICalendarSource.all().filter( 'status =', 'submitted').get() has_pending_links = Link.all().filter('status =', 'submitted').get() return render_to_response('events/queue.html', locals(), context_instance=RequestContext(request))