Ejemplo n.º 1
0
def add_event(request, user_id):
    params = request.form
    e = Event(title=params["title"],
              event_date=datetime.strptime(params["event_date"], ISO_DATE_DEF),
              end_date=datetime.strptime(params["end_date"], ISO_DATE_DEF),
              body=params["body"],
              location=params["location"],
              committee_id=params["committee_id"],
              facebook_link=params["facebook_link"],
              body_en=params["body_en"],
              title_en=params["title_en"],
              user_id=user_id)

    add_cols(params, e)

    if "header_image" in request.files:
        image_name = upload_image(request.files["header_image"])
        e.header_image = image_name
    if params["tags"]:
        #tag the event
        tags = PostTag.query.filter(PostTag.id.in_(params["tags"])).all()
        for tag in tags:
            e.tags.append(tag)
    db.session.add(e)
    db.session.commit()
    return e
 def test_creation_with_full_data_string_int(self):
     _now = datetime.now()
     event = Event(
         title="Inter Block Movie Night",
         event_type="FE",
         meetup_location="Root Cove",
         start_time=_now,
         block="59",
         floor="8",
         description="Let's watch a movie together.",
         duration_mins="120",
         count_attendance=True,
         signup_limit="30",
         signup_ddl=_now,
         archived=False,
     )
     print(event)
     self.assertTrue(isinstance(event, Event))
     self.assertTrue(event.title == "Inter Block Movie Night")
     self.assertTrue(event.event_type == "FE")
     self.assertTrue(event.meetup_location == "Root Cove")
     self.assertTrue(event.start_time == _now)
     self.assertTrue(event.block == "59")
     self.assertTrue(event.floor == "8")
     self.assertTrue(event.description == "Let's watch a movie together.")
     self.assertTrue(event.duration_mins == 120)
     self.assertTrue(event.count_attendance == True)
     self.assertTrue(event.signup_limit == 30)
     self.assertTrue(event.signup_ddl == _now)
     self.assertTrue(event.archived == False)
 def test_creation_with_missing_data(self):
     with self.assertRaises(Exception):
         event = Event(
             title="Inter Block Movie Night",
             event_type="IBE",
             meetup_location="BLK 57, Student Lounge",
         )
 def test_creation_with_invalid_data(self):
     _now = datetime.now()
     event = Event(
         title="Inter Block Movie Night",
         event_type="IBB",
         meetup_location="Root Cove",
         start_time=_now,
         block="999",
         floor="888",
         description="Let's watch a movie together.",
         duration_mins=0,
         count_attendance=True,
         signup_limit=-10,
         archived="False",
     )
     print(event)
     self.assertTrue(isinstance(event, Event))
     self.assertTrue(event.title == "Inter Block Movie Night")
     self.assertTrue(event.event_type == "MEETUP")
     self.assertTrue(event.meetup_location == "Root Cove")
     self.assertTrue(event.start_time == _now)
     self.assertTrue(event.block == "ANY")
     self.assertTrue(event.floor == "ANY")
     self.assertTrue(event.description == "Let's watch a movie together.")
     self.assertTrue(event.duration_mins == 60)
     self.assertTrue(event.count_attendance == True)
     self.assertTrue(event.signup_limit == 20)
     self.assertTrue(event.signup_ddl == _now)
     self.assertTrue(event.archived == False)
 def test_uid_creation(self):
     event = Event(
         title="Inter Block Movie Night",
         event_type="IBE",
         meetup_location="BLK 57, Student Lounge",
         start_time=datetime.now(),
     )
     print(event)
     self.assertTrue(isinstance(event, Event))
     self.assertTrue(event.uid.startswith("E"))
Ejemplo n.º 6
0
def get_events(query_filter=None):
    logging.info('[SERVICE]: Getting events')
    events_ids = memcache.get('events_ids')
    if events_ids is not None:
        events = memcache.get_multi(events_ids)
        if events is not None:
            return events.values()
        else:
            memcache.delete('events_ids')
            return get_events()
    else:
        if not query_filter:
            events = Event.query()
        else:
            events = Event.query().filter(query_filter)
        events_ids = events.map(lambda event: str(event.id))
        memcache.add('events_ids', events_ids, 3600)
        event_mapping = {}
        for event in events:
            event_mapping[str(event.id)] = event
        memcache.add_multi(event_mapping, 3600)
        return events
 def test_creation_with_minimal_data(self):
     _now = datetime.now()
     event = Event(
         title="Inter Block Movie Night",
         event_type="IBE",
         meetup_location="BLK 57, Student Lounge",
         start_time=_now,
     )
     print(event)
     self.assertTrue(isinstance(event, Event))
     self.assertTrue(event.title == "Inter Block Movie Night")
     self.assertTrue(event.event_type == "IBE")
     self.assertTrue(event.meetup_location == "BLK 57, Student Lounge")
     self.assertTrue(event.start_time == _now)
Ejemplo n.º 8
0
def get_events():
    #get query string params
    user_query = request.args.to_dict()
    #if the user supplied a query, filter

    page = request.args.get('page', 1, type=int)
    per_page = request.args.get('perPage', 20, type=int)

    if user_query:
        q = Event.query.filter_by(**user_query).paginate(page=page,
                                                         per_page=per_page)
    else:
        #if user did not provide filter, just send all events
        scheduled_condition = [
            Event.scheduled_date <= datetime.now(),
            Event.scheduled_date == None
        ]
        q = Event.query.filter(
            and_(Event.draft == False,
                 or_(*scheduled_condition))).paginate(page=page,
                                                      per_page=per_page)
    data = [Event.to_dict(res) for res in q.items]
    return jsonify({"data": data, "totalCount": q.total})
Ejemplo n.º 9
0
 def make_news(self, data):
     return Event(**data)
 def test_creation_with_missing_data_2(self):
     with self.assertRaises(Exception):
         event = Event(
             event_type="IBE",
             meetup_location="BLK 57, Student Lounge",
         )