def get_context(event_key, user_id, url): if user_id: event = EventManager.get_marked_event(event_key, user_id) else: event = EventManager.get_event(event_key) if not event: return None context = {} context['event'] = event event_key = event_key.urlsafe() if user_id and event['is_active'] and event['reviewing'] and event['seller_id'] != user_id: context['event']['can_review'] = True reviews = stat_tracker.get_reviews(event_key) if reviews: context['event']['rating'] = reviews.get('av_score', 0) context['event']['reviewers_number'] = len(reviews['reviews'].keys()) if user_id in reviews['reviews'].keys(): context['event']['has_user_reviewed'] = True context['event']['user_score'] = reviews['reviews'].get(user_id, 0) boys_number = stat_tracker.get_number_of_boys(event_key) girls_number = stat_tracker.get_number_of_girls(event_key) event['attendees_number'] = boys_number + girls_number if event['attendees_number'] > 0: event['girls_ratio'] = (girls_number * 100.0)/event['attendees_number'] return context
def get(self, *args, **kargs): try: if self.user and EventManager.is_user_owner(self.user_info['user_id'], self._get_event_key) and not self.request.get('view_as'): ShowEventHandler.get(self) else: user_id = self.user_info['user_id'] if self.user else None with ThreadPoolExecutor(max_workers=2) as e: if EventManager.is_event_upcoming(self._get_event_key) and not self.request.get('view_as'): page_key = self._get_event_key.urlsafe() ip_adress = self.request.remote_addr e.submit(track_page_view, page_key, ip_adress, user_id) context = e.submit(get_context,self._get_event_key, user_id).result() if context.get('event') is None: raise EventNotFoundException self.render_template('event.html', context) except EventNotFoundException: raise
def get_template_context_showing_all_events(self): events = EventManager.get_event_list() + EventManager.get_event_list(recent = True) context = dict() context['events'] = events context['showingAllEvents'] = True context['sidebar_active'] = "allEvent" return context
def get_template_context(self): if self.event: context = self.get_template_context_showing_one_event() context['event']['image'] = EventManager._get_event_image(context['event']) context['event']['stat'] = EventManager.get_event_stats(self.event.key.urlsafe()) else: context = self.get_template_context_showing_all_events() context['left_sidebar'] = 'my_events' return context
def get(self, *args, **kargs): filter_key = self.request.get('filter_key') sort_order = self.request.get('sort_order') tab = self.request.route_kwargs.get('page') if self.user: events = EventManager.get_events_not_attending( user_id=self.user_info['user_id'], category = tab, filtered_by = filter_key, ordered_by = sort_order) else: events = EventManager.get_event_list(category = tab, filtered_by = filter_key, ordered_by = sort_order) self.prepare_and_serve_events(events)
def get(self): categories = ["party", "other", "sport","academic"] for i in range(1,50): event_data = { 'name' : "FreeEvent "+str(i), 'date_event' : datetime.datetime.now() + datetime.timedelta(hours = i*random.randrange(2, 50)), 'venue_name' : "Venue " + str(i), 'venue_addresse' : "Addresse " + str(i), 'category' : categories[random.choice([0,1,2,3])], 'terms' : "Terms for event number " + str(i), 'description' : "This is description for event number " + str(i) } event = self.user.create_free_event(**event_data) EventManager.publish_event(event.id(), self.user) self.response.out.write('{} created successfully'.format(i))
def get(self): weekly_events = EventManager.get_event_list(filtered_by='week') if weekly_events: taskqueue.add(url='/tasks/notification/weekly/start') self.render_template('ebdigest.html', {'event_list': weekly_events})
def get_user_event_dict(self): """ Get a dict of user_id as key and dict of list of events they are attending today and their email as value """ events = EventManager.get_event_list(filtered_by='today') user_event_dict = {} already_in_dict = [] no_send = [] for event in events: event_key = ndb.Key(urlsafe=event['key']) user_ids = AttendanceManager.get_users_id_attending(event_key) if user_ids: for an_id in user_ids: if an_id in already_in_dict: user_event_dict[an_id]['events'].append(event['key']) else: if not an_id in no_send: user_notif = NotifSettings.get_settings_for(user_id=an_id) if user_notif.daily_alert: user_event_dict[an_id] = {} user_event_dict[an_id]['email'] = user_notif.email_to_use user_event_dict[an_id]['events'] = [event['key']] already_in_dict.append(an_id) else: no_send.append(an_id) return user_event_dict
def post(self): user_id = int(self.request.get('user_id')) event_keys = self.request.get('events', allow_multiple=True) email = self.request.get('email') already_sent = memcache.get_daily_sent_ids() if not user_id or not email: logging.debug('NO POST DATAS PROVIDED') return if user_id in already_sent: return events = filter(lambda event: event['key'] in event_keys, EventManager.get_event_list(filtered_by='today')) print(events) user = UserManager.get_user_friendly(id =user_id) if not user_id or not email: logging.debug('NO POST DATAS PROVIDED') return html_email = self.get_html_email(user, events) subject = self.get_subject(user) non_html_email = self.get_non_html_email(user) from main import debug if not debug: sender.send('EventBuck Rappel','*****@*****.**', subject, text=non_html_email, html=html_email, receiver_email=email, receiver_name=user['fullname']) memcache.add_daily_sent(user_id)
def gparams(self): """ This is a property containing general parameters we need """ admin = users.is_current_user_admin() gparams = { "url_for_partys": webapp2.uri_for("market", page="party"), "url_for_sports": webapp2.uri_for("market", page="sport"), "url_for_others": webapp2.uri_for("market", page="other"), "url_for_academic": webapp2.uri_for("market", page="academic"), "url_for_home": webapp2.uri_for("marketMain"), "url_for_about": webapp2.uri_for("market", page="about"), "url_for_contact": webapp2.uri_for("market", page="contact"), "url_for_signin": webapp2.uri_for("marketLogin"), "url_for_authenticate": webapp2.uri_for("marketAuthenticate", callback=self.request.url), "url_for_signup": webapp2.uri_for("marketSignUp"), "profile_picture": self.get_profile_picture_url(), "url_for_profile_picture": webapp2.uri_for("profilePicture"), "url_for_attend": webapp2.uri_for("attendEvent"), "url_for_attending_events": webapp2.uri_for("marketUserAttending"), "url_for_user_events": webapp2.uri_for("marketUserEvents"), "url_for_create_event": webapp2.uri_for("marketCreateEvent"), "url_for_rpc_create_event": webapp2.uri_for("rpcCreateEvent"), "url_for_shop_signup": webapp2.uri_for("shopSignUp"), "url_for_logout": webapp2.uri_for("marketLogout"), "url_for_shop": "/shop", "current_url": self.request.url, "static": "/newTemplate", "admin": admin, "active": "home", } if self.user: if self.user.type == "student": gparams.update( { "avenir_number": len(EventManager.get_events_attending(user_id=self.user_info["user_id"])), "events_to_review": len(EventManager.get_events_reviewing(self.user_info["user_id"])), } ) gparams.update( {"event_from_following": len(EventManager.get_events_from_subscription(self.user_info["user_id"]))} ) return gparams
def get(self, *args, **kargs): filter_key = self.request.get('filter_key') sort_order = self.request.get('sort_order') tab = self.request.route_kwargs.get('page') events = EventManager.get_events_reviewing(self.user_info['user_id'], category=tab, filtered_by=filter_key, ordered_by=sort_order) self.prepare_and_serve_events(events)
def get_template_context(self): filter_key = self.request.get('filter_key') sort_order = self.request.get('sort_order') tab = self.request.route_kwargs.get('page') context = {} context['left_sidebar'] = 'subscription' context['events'] = EventManager.get_events_from_subscription(self.user_info['user_id'], category = tab, filtered_by = filter_key, ordered_by = sort_order) return context
def get_template_context(self): context = dict() context.update(self._get_profile_info()) if context['target']['type'] == 'student': context['events_by_user'], context['events_by_others'] = self._get_events_by_user_and_by_other() else: context['events_by_user'] = EventManager.get_events_by(self.profile_id_to_view) return context
def _get_events_by_user_and_by_other(self): """ Return a tuple of two lists, the first being events by user and the second events by others """ events = EventManager.get_events_attending(user_id=self.profile_id_to_view) by_user = [] by_others = [] for event in events: if event['seller_id'] == self.profile_id_to_view: by_user.append(event) else: by_others.append(event) return by_user, by_others
def publish_event(self, event_id): if not self.user.verified: raise UserNotAllowed("The user can't publish because he is not verified") return EventManager.publish_event(event_id, self.user)
def attend_event(self): if not self.event: raise EventNotFoundException return EventManager.attend_event(self.user_info['user_id'], event_key = self.event)
def get_template_context(self): context = dict() context['left_sidebar'] = 'attending' context['events'] = EventManager.get_events_attending(self.user_info['user_id']) return context
def get_template_context(self): context = super(EditEventHandler, self).get_template_context() context['event']['image'] = EventManager._get_event_image(context['event']) context['url_for_editEvent'] = self.uri_for('rpcEditEvent', event_id = self.event.key.id()) return context
def get_index_context(self, tab=None): context = {} context['active_submenu'] = tab if tab else 'all' context['events'] = EventManager.get_event_list(category = tab) return context
def get_home_context(self, tab=None): context = {} context['active_submenu'] = tab if tab else 'all' context['events'] = EventManager.get_events_not_attending(self.user_info['user_id'], category=tab) context['left_sidebar'] = 'home' return context
def get_html_email(self, user): events = EventManager.get_event_list(filtered_by = 'week') return (jinja_environment.get_template('ebdigest.html').render({'event_list': events, 'user':user, 'subject':self.get_subject(user) }))
def get(self): upcoming_events = EventManager.get_upcoming_events() self.render_template("admin.html", {"events": "test"})
def get(self): today_events = EventManager.get_event_list(filtered_by = 'today') if today_events: task = taskqueue.add(url='/tasks/notification/daily/start') self.render_template('ebdigest.html', {'event_list': today_events})
def post(self): self.add_task() events = EventManager.get_event_list(filtered_by='today') self.render_template('ebdigest.html', {'event_list': events})