def edit_event(request, slug=None, clone=None): """Edit event view.""" event, created = get_or_create_instance(Event, slug=slug) if created: event.owner = request.user else: # This is for backwards compatibility for all the events # that were set before the change in the minutes section # of the drop down widget to multiples of 5. # Start time: Floor rounding # End time: Ceilling rounding event.start -= timedelta(minutes=event.start.minute % 5) if (event.end.minute % 5) != 0: event.end += timedelta(minutes=(5 - (event.end.minute % 5))) initial = {'country': request.user.userprofile.country, 'city': request.user.userprofile.city, 'region': request.user.userprofile.region} if request.user.groups.filter(name='Admin').count(): event_form = forms.EventForm(request.POST or None, editable_owner=True, instance=event, initial=initial) else: event_form = forms.EventForm(request.POST or None, editable_owner=False, instance=event, initial=initial) metrics_formset = forms.EventMetricsFormset(request.POST or None, instance=event) if (event_form.is_valid() and metrics_formset.is_valid() and request.POST): event_form.save(clone=clone) metrics_formset.save(clone=clone) if created: messages.success(request, 'Event successfully created.') else: messages.success(request, 'Event successfully updated.') return redirect('events_view_event', slug=event_form.instance.slug) can_delete_event = False if (not created and (event.owner == request.user or request.user.has_perm('events.can_delete_events'))): can_delete_event = True selected_categories = map(int, event_form['categories'].value()) return render(request, 'edit_event.html', {'creating': created, 'event': event, 'event_form': event_form, 'selected_categories': selected_categories, 'metrics_formset': metrics_formset, 'can_delete_event': can_delete_event})
def create_event(request): user = request.user form = myforms.EventForm() if request.method == 'POST': event = Event(author=user) form = myforms.EventForm(request.POST, instance=event) if form.is_valid(): event = form.save() event.attending.add(user) user.userprofile.events.add(event) return HttpResponseRedirect('/events/%d/' % event.id) return render_to_response('events/new_event.html', {'form': form}, context_instance=RequestContext(request))
def edit_event(request, slug=None): """Edit event view.""" event, created = get_or_create_instance(Event, slug=slug) if created: event.owner = request.user if request.user.groups.filter(name='Admin').count(): event_form = forms.EventForm(request.POST or None, editable_owner=True, instance=event) else: event_form = forms.EventForm(request.POST or None, editable_owner=False, instance=event) metrics_formset = forms.EventMetricsFormset(request.POST or None, instance=event) if (event_form.is_valid() and metrics_formset.is_valid()): event_form.save() metrics_formset.save() if created: messages.success(request, 'Event successfully created.') else: messages.success(request, 'Event successfully updated.') return redirect('events_view_event', slug=event_form.instance.slug) can_delete_event = False if (not created and (event.owner == request.user or request.user.has_perm('events.can_delete_events'))): can_delete_event = True return render( request, 'edit_event.html', { 'creating': created, 'event': event, 'event_form': event_form, 'metrics_formset': metrics_formset, 'can_delete_event': can_delete_event })
def add_event(self): dtstart = datetime.now() event_form = forms.EventForm(Choices=build_choice()) recurrence_form = forms.MultipleOccurrenceForm() if event_form.validate_on_submit(): # data = form.data # user.set(**data) # event.save() #========================================== params = recurrence_form.print_all() print "params:" print params print "title:" print event_form.title.data print "label:" print event_form.label.data print "day:" s = re.search("value=", str(recurrence_form.day)) n1 = s.end() + 1 time_start = str(recurrence_form.day)[n1:n1 + 19] print time_start print " until:" s = re.search("value=", str(recurrence_form.until)) n2 = s.end() + 1 time_end = str(recurrence_form.until)[n2:n2 + 19] print time_end evt_choice = build_choice() d_choices = dict(evt_choice.choices) print d_choices evt = create_event( event_form.title.data, d_choices[event_form.label.data], event_form.label.data, description=event_form.description.data, start_time=datetime.strptime(str(time_start), "%Y-%m-%d %H:%M:%S"), end_time=datetime.strptime(str(time_end), "%Y-%m-%d %H:%M:%S"), note=event_form.note.data, **params) #========================================== flash("Your profile has been saved") else: flash("form did not validate on submit") recurrence_form.day = datetime.now() recurrence_form.until = datetime.now() return self.render('add_event.html', dtstart=dtstart, event_form=event_form, recurrence_form=recurrence_form)
def main(): events = models.Event.select() user_id = g.user._get_current_object().id event_form = forms.EventForm() user_hobbies = models.User_Hobby.select().where( models.User_Hobby.user_id == user_id) hobbies = models.Hobby.select() return render_template('main.html', hobbies=hobbies, user_hobbies=user_hobbies, event_form=event_form, events=events)
def createevent(): """create event page view function""" form = forms.EventForm() if form.validate_on_submit(): model.Event.create_event( eventname=form.eventname.data, eventdatetime=form.eventdatetime.data, eventtype=int(form.eventtype.data), eventday=int(form.eventday.data), eventcontent=form.eventcontent.data) flash("Event created successfully") return redirect(url_for("nextevent")) return render_template("createevent.html", form=form)
def events(eventid=None): form = forms.EventForm() if eventid != None: user_id = g.user._get_current_object().id events = models.Event.select().where(models.Event.id == eventid) attending = models.User_Event.select(models.User_Event.event_id).where( models.User_Event.user_id == user_id) comments = models.Comments.select().where( models.Comments.event_id == eventid) form = forms.Create_Event_Comments() edit_event_form = forms.EventForm() return render_template("single_event.html", events=events, form=form, comments=comments, edit_event_form=edit_event_form, attending=attending) else: if form.validate_on_submit(): models.Event.create_event( title=form.title.data, event_time=request.form.get('event_time'), location=form.location.data, details=form.details.data, hobby=form.hobby.data, created_by=g.user._get_current_object().id) event = models.Event.get(models.Event.title == form.title.data) models.User_Event.create_user_event( user=g.user._get_current_object(), event=event, isHost=True) return redirect(url_for('main')) return render_template('event.html', form=form)
def edit_events(eventid): form = forms.EventForm() if form.validate_on_submit(): update_event = (models.Event.update({ models.Event.title: form.title.data, models.Event.location: form.location.data, models.Event.details: form.details.data, models.Event.event_time: request.form.get('event_time') }).where(models.Event.id == eventid)) update_event.execute() return redirect(url_for('events', eventid=eventid))
def event(): # passes list of topics for dropdown menu topics = models.Topic.select() # event form eventForm = forms.EventForm() if eventForm.validate_on_submit(): models.Event.create_event(title=eventForm.title.data, event_time=request.form.get('event_time'), location=eventForm.location.data, details=request.form.get('details'), topic=request.form.get('topics'), created_by_id=g.user._get_current_object()) event = models.Event.get(models.Event.title == eventForm.title.data) models.User_Events.create_user_event(user=g.user._get_current_object(), event=event, isHost=True) flash('Event created', 'success') return redirect(url_for('main')) return render_template('event.html', form=eventForm, topics=topics)
def main(topicid=None): if topicid != None: events = models.Event.select().where(models.Event.topic_id == topicid) else: events = models.Event.select() topics = models.Topic.select( models.Topic.id, models.Topic.name, fn.COUNT(models.User_Topics.user_id).alias('num_of_followers')).join( models.User_Topics, JOIN.LEFT_OUTER, on=(models.Topic.id == models.User_Topics.topic_id)).group_by( models.Topic.id, models.Topic.name) eventForm = forms.EventForm() user_events = models.User_Events.select() user = g.user._get_current_object() attending = models.User_Events.select(models.User_Events.event_id).where( models.User_Events.user_id == user.id) return render_template('main.html', topics=topics, events=events, form=eventForm, user_events=user_events, attending=attending, user=user)
def edit_event(request, slug=None, clone=None): """Edit event view.""" initial = {} extra_formsets = 2 event, created = get_or_create_instance(Event, slug=slug) if created: event.owner = request.user initial = { 'country': request.user.userprofile.country, 'city': request.user.userprofile.city, 'region': request.user.userprofile.region, 'timezone': request.user.userprofile.timezone } else: # This is for backwards compatibility for all the events # that were set before the change in the minutes section # of the drop down widget to multiples of 5. # Start time: Floor rounding # End time: Ceilling rounding event.start -= timedelta(minutes=event.start.minute % 5) if (event.end.minute % 5) != 0: event.end += timedelta(minutes=(5 - (event.end.minute % 5))) if event.eventmetricoutcome_set.exists(): extra_formsets = 0 editable = False if request.user.groups.filter(name='Admin').count(): editable = True # Compatibility code for old metrics min_forms = 0 metrics_form = forms.EventMetricsForm event_form = forms.EventForm(request.POST or None, editable_owner=editable, instance=event, initial=initial, clone=clone, user=request.user) if event.has_new_metrics or clone: min_forms = 2 if event.is_past_event and not clone: metrics_form = forms.PostEventMetricsForm event_form = forms.PostEventForm(request.POST or None, editable_owner=editable, instance=event, initial=initial) EventMetricsFormset = inlineformset_factory( Event, Event.metrics.through, form=metrics_form, formset=forms.BaseEventMetricsFormset, extra=extra_formsets) EventMetricsFormset.form = staticmethod(curry(metrics_form, clone=clone)) metrics_formset = EventMetricsFormset(request.POST or None, instance=event, min_forms=min_forms, clone=clone) if event_form.is_valid() and metrics_formset.is_valid(): event_form.save() if created: messages.success(request, 'Event successfully created.') statsd.incr('events.create_event') elif clone: messages.success(request, 'Event successfully created.') statsd.incr('events.clone_event') else: messages.success(request, 'Event successfully updated.') statsd.incr('events.edit_event') metrics_formset.save() return redirect('events_view_event', slug=event_form.instance.slug) can_delete_event = False if (not created and (event.owner == request.user or request.user.has_perm('events.can_delete_events'))): can_delete_event = True return render( request, 'edit_event.jinja', { 'creating': created, 'event': event, 'event_form': event_form, 'metrics_formset': metrics_formset, 'can_delete_event': can_delete_event })
def index(): form = forms.EventForm() return render_template('create.html', form=form)