Example #1
0
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
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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
Example #5
0
 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)
Example #6
0
 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)
Example #10
0
 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
Example #11
0
 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)        
Example #12
0
 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
Example #13
0
 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
Example #14
0
    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)
Example #16
0
 def attend_event(self):
     if not self.event:
         raise EventNotFoundException
     return EventManager.attend_event(self.user_info['user_id'], event_key = self.event)
Example #17
0
 def get_template_context(self):
     context = dict()
     context['left_sidebar'] = 'attending'
     context['events'] = EventManager.get_events_attending(self.user_info['user_id'])
     return context
Example #18
0
 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
Example #19
0
 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
Example #20
0
 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)
                                                                    }))
Example #22
0
    def get(self):

        upcoming_events = EventManager.get_upcoming_events()

        self.render_template("admin.html", {"events": "test"})
Example #23
0
 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})
Example #24
0
 def post(self):
     self.add_task()
     events = EventManager.get_event_list(filtered_by='today')
     self.render_template('ebdigest.html', {'event_list': events})