Ejemplo n.º 1
0
    def test_history_no_errors_boundary(self):
        down = Status.get_by_slug("down")
        up = Status.get_by_slug("up")

        now = datetime(2011, 4, 5)
        event = Event(status=down,
                      service=self.service,
                      start=now,
                      message="HEY")
        event.put()

        history = self.service.history(5, up, start=date(2011, 4, 5))
        self.assertEquals(history[0]["information"], False)
Ejemplo n.º 2
0
    def create_event():
        try:
            name = request.form.get('name')
            time = request.form.get('time')
            max_players = request.form.get('max_players')
            description = request.form.get('description')
            host = get_current_member_object()
            host_id = host.id
            players = [host]
            # this will run when user chose 'a new location'
            if request.form.get('location') == '0':
                location_name = request.form.get('location_name')
                country = request.form.get('country')
                city = request.form.get('city')
                street = request.form.get('street')
                house_num = request.form.get('house_num')
                appartment_num = request.form.get('appartment_num')
                if appartment_num == '':
                    appartment_num = None
                new_location = Location(name=location_name,
                                        country=country,
                                        city=city,
                                        street=street,
                                        house_num=house_num,
                                        appartment_num=appartment_num)
                db.session.add(new_location)
                location_id = Location.query.filter_by(
                    name=location_name).one_or_none().id
            else:
                location_id = request.form.get('location')

            games = [
                Game.query.filter_by(id=game_id).one_or_none()
                for game_id in request.form.getlist('games')
            ]

            new_event = Event(name=name,
                              time=time,
                              max_players=max_players,
                              host_id=host_id,
                              location_id=location_id,
                              description=description)
            db.session.add(new_event)
            new_event.players = players
            new_event.games = games
            db.session.commit()
        except Exception as e:
            db.session.rollback()
        finally:
            db.session.close()
            return redirect('/events/all')
Ejemplo n.º 3
0
def add_event():
    if 'user_id' in session:
        user_id = session['user_id']
    else:
        return redirect(url_for('index'))

    print 'add event func'
    print request.form
    t_id = request.form['team_id']
    team_id = int(t_id[0])

    if request.form['event_time']:
        event_date = datetime.strptime(request.form['event_time'], '%d %B %Y')
    else:
        event_date = datetime.now()

    print str(request.form['event_title'].encode('utf-8'))
    event = Event(title=str(request.form['event_title'].encode('utf-8')),
                  content=request.form['event_content'],
                  timestamp=event_date,
                  team_id=team_id,
                  author_id=user_id)
    # category
    c_id = request.form['category_id'],
    print 'c_id', type(c_id)
    if c_id[0]:
        print 'has category'
        event.category_id = c_id[0]
    print event
    db.session.add(event)
    db.session.commit()

    date_path = event_date.strftime('%Y-%m')
    save_path = os.path.join(app.config['UPLOAD_FOLDER'],
                             'team-' + str(team_id), date_path)
    if not os.path.exists(save_path):
        os.makedirs(save_path)

    file = request.files['file']
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        file.save(
            os.path.join(app.config['UPLOAD_FOLDER'], 'team-' + str(team_id),
                         date_path, filename))

        photo = Photo(path=os.path.join('team-' + str(team_id), date_path,
                                        filename),
                      event_id=event.id)
        db.session.add(photo)
        db.session.commit()
    return redirect(url_for('admin_team', team_id=team_id))
Ejemplo n.º 4
0
def changeEvents():
    if current_user.authlevel < 2:
        return redirect(url_for('index'))

    eid  = request.args.get('event_id')
    aid  = int(request.args.get('article_id'))
    opts = {}
    curr = {}

    ## initialize opts
    opts = {v[0]: [] for v in vars}

    if eid:
        eid = int(eid)
        ## get the current values
        for csp in db_session.query(CodeSecondPass).filter_by(event_id = eid, coder_id = current_user.id).all():
            if csp.variable not in curr:
                curr[ csp.variable ] = []

            curr[ csp.variable ].append(csp.value)
    else:
        ## add a new event
        ev  = Event(aid)
        db_session.add(ev)
        db_session.commit()

        eid = ev.id

    ## built-in dropdown options
    for o in db_session.query(VarOption).all():
        opts[ o.variable ].append(o.options)

    ## None of the above for v1 variables
    for k,v in v1:
        opts[ k ].append("_None of the above")

    for k,v in v2:
        ## coder 1-generated dropdown options
        for o in db_session.query(CodeFirstPass).filter_by(variable = k, article_id = aid).all():
            opts[ o.variable ].append(o.text)

        ## coder 2-generated dropdown options
        for o in db_session.query(CodeSecondPass).filter_by(variable = k, article_id = aid, coder_id = current_user.id).all():
            opts[ o.variable ].append(o.value)

    ## filter out repeated items and sort
    for k,v in opts.items():
        opts[k] = list( set( map(lambda x: x.strip(" .,"), opts[k]) ) )
        opts[k].sort()

    return render_template("event-block.html", v1 = v1, v2 = v2, opts = opts, curr = curr, event_id = eid)
Ejemplo n.º 5
0
def import_events_results():
    with open("data/results.csv", "r") as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            try:
                time = pd.to_timedelta(row["time"])
                time_seconds = time.total_seconds()
                date = pd.to_datetime(row["date"])
                names = row["rider"].split()
                rider_id = Rider.query.filter_by(
                    first_name=names[0].strip(),
                    last_name=names[1].strip()).first().id
                name = row["name"]

                place_open = int(row["place_open"].split('/')[0])
                riders_open = int(row["place_open"].split('/')[1])

                place_category = int(row["place_category"].split('/')[0])
                riders_category = int(row["place_category"].split('/')[1])

                if pd.isnull(time):
                    raise Exception

                if Event.query.filter_by(name=name).filter_by(
                        date=date).first() is None:
                    if len(name) > 0 and date is not None:
                        new_event = Event(name=name, date=date)
                        db.session.add(new_event)

                event_id = Event.query.filter_by(name=name).filter_by(
                    date=date).first().id

                if Result.query.filter_by(event_id=event_id).filter_by(
                        rider_id=rider_id).first() is None:
                    if rider_id is not None:
                        new_result = Result(time=time,
                                            time_seconds=time_seconds,
                                            rider_id=rider_id,
                                            event_id=event_id,
                                            distance=row["distance"],
                                            category=row["category"],
                                            place_open=place_open,
                                            riders_open=riders_open,
                                            place_category=place_category,
                                            riders_category=riders_category)
                        db.session.add(new_result)

            except:
                print("Invalid row number " + str(reader.line_num))

        db.session.commit()
Ejemplo n.º 6
0
 async def load_meets(cls, year):
     base_url = f"http://www.ftcpenn.org/ftc-events/{year}-{year+1}-season"
     if year == 2014:
         match_url = base_url + "/philadelphia-area-league-meets/match-results-details"
         rankings_url = base_url + "/philadelphia-area-league-meets/team-rankings"
         match_tables = BeautifulSoup(
             await cls.get(match_url), 'lxml').find(
                 class_="sites-layout-tile sites-tile-name-content-1"
             ).find_all("table")
         rankings_tables = BeautifulSoup(
             await cls.get(rankings_url), 'lxml').find(
                 class_="sites-layout-tile sites-tile-name-content-1"
             ).find_all("table")
         dates = [
             mkdate(2014, 12, 10),
             mkdate(2014, 12, 11),
             mkdate(2015, 1, 14),
             mkdate(2015, 1, 15)
         ]
         for i, match_table, rankings_table in zip(range(1,
                                                         5), match_tables,
                                                   rankings_tables):
             event_key = f"1415paphlm{i}"
             print("Processing", event_key)
             event = Event(
                 key=event_key,
                 year=year,
                 name=f"Philadelphia Area League - Meet {i}",
                 city="Philadelphia",
                 state_prov="Pennsylvania",
                 country="USA",
                 start_date=dates[i - 1],
                 end_date=dates[i - 1],
                 event_type=EventType.MEET,
                 region="Pennsylvania",
                 advances_to="1415paphlcmp",
                 venue="Temple University College of Engineering Building",
                 address="1947 N 12th St. Philadelphia, PA",
                 website="https://www.temple.edu",
                 league_key="1314paphl",
                 playoff_type=PlayoffType.STANDARD)
             matches = ResultsPageHelper.load_match_details(
                 match_table, event.key)
             rankings = ResultsPageHelper.load_rankings(
                 rankings_table, matches)
             await EventHelper.insert_event(event,
                                            matches,
                                            rankings,
                                            None,
                                            data_source="ftcpenn.org")
Ejemplo n.º 7
0
    def test_create_event(self):
        s = Service(slug=u"hey", name=u"you", description=u"lol")
        s.put()

        stat = Status(name=u"you",
                      slug=u"leave",
                      description=u"why",
                      image=u"cry")
        stat.put()

        e = Event(status=stat, service=s, message=u"¨¥¨œ∑´æ")
        e.put()

        data = e.rest("/api")
Ejemplo n.º 8
0
 def form_to_dao(self, childevent_id):
     childevent = None
     if childevent_id is not None and len(childevent_id) > 1:
         childevent = self.childeventDao.get_record(long(childevent_id))
     else:
         childevent = Event()
     childevent.name = self.form.name.data
     #Create an automatic alias for the childevent
     childevent.alias = utils.slugify(self.form.name.data)
     childevent.description = self.form.description.data
     childevent.start_datetime = self.form.start_datetime.data
     childevent.end_datetime = self.form.end_datetime.data
     childevent = cms_utils.form_to_dao_contact_info(self.form, childevent)
     return childevent
Ejemplo n.º 9
0
    def post(self):
        checkLoggedInAndRegistered(self)

        user = users.get_current_user()

        event = Event(name=self.request.get('event-name'),
                      short_description=self.request.get('short-description'),
                      date=datetime.strptime(self.request.get('event-date'),
                                             '%Y-%m-%d'),
                      age_range=self.request.get('age-range'),
                      location=self.request.get('event-location'))
        event_key = event.put()

        self.redirect('/')
Ejemplo n.º 10
0
def logEvent(request, page, parent_id=None, object_id=None):
    event = Event(page=page, url=resolve(request.path_info).url_name)

    if 'cafe-context' in request.session:
        event.context = request.session['cafe-context']
    if request.user.is_authenticated():
        event.user = request.user

    if parent_id:
        event.parent_id = parent_id
    if object_id:
        event.object_id = object_id

    event.save()
Ejemplo n.º 11
0
def add_event():
    new_event = Event()

    startTimeObject = datetime.strptime(request.json["event_start_time"], "%Y-%m-%d %H:%M:%S")
    endTimeObject = datetime.strptime(request.json["event_end_time"], "%Y-%m-%d %H:%M:%S")
    new_event.start_time = startTimeObject
    new_event.end_time = endTimeObject
    new_event.event_name = request.json["event_name"]
    new_event.details = request.json["event_details"]
    new_event.owner_id = request.json["owner_id"]
    if new_event.owner_id != "" and new_event.event_name != "" and new_event.start_time != "":
        db.session.add(new_event)
        db.session.commit()
    return jsonify(success=True)
Ejemplo n.º 12
0
def show(id=1):
    try:
        m_events = Event()
        m_event = m_events.read_data(id)
        # html or Json response
        if request_wants_json():
            return jsonify(data = m_event)
        else:
            return render_template("events/show.html", event=m_event, app = app)

    except Exception, ex:
        print("------------ ERROR  ------------\n" + str(ex.message))
        flash(str(ex.message), category="warning")
        abort(404)
Ejemplo n.º 13
0
 def get(self, userid, toolid):
     # TODO: Figure out better exception handling
     try:
         user_id = int(userid)
         tool_id = int(toolid)
     except ValueError:
         abort(500)
     tool = Tool.query.filter_by(id=tool_id).first()
     if tool is None:
         abort(500)
     tool.broken = True
     db.session.add(Event(user_id, tool_id, "Report broken"))
     db.session.commit()
     return True
Ejemplo n.º 14
0
def update_events():
    fields = "fields=description,name,start_time,place"
    access_token = "%s|%s" % (settings.CLIENT_ID, settings.CLIENT_SECRET)
    counter = 0
    facebook_api_error_list = []

    for p in settings.PROFILES:
        url = "https://graph.facebook.com/%s/events?%s&access_token=%s" % (
            p['id'], fields, access_token)
        try:
            r = requests.get(url).json()

            if 'error' in r and r['error']['code'] != 100:
                print r['error']
                facebook_api_error_list.append(r['error'])
        except Exception, e:
            print u"requests lib exception: %s" % e
            continue

        try:
            if 'data' in r:
                for i in r['data']:
                    e = Event.query.filter(
                        Event.event_id == int(i["id"])).first()

                    if e == None:
                        time = i["start_time"].split('T')[0]
                        start_time = datetime.datetime.strptime(
                            time, "%Y-%m-%d")

                        if "place" in i:
                            location = i["place"]["name"]
                        else:
                            location = u"<nav norādīts>"

                        e = Event(event_id=i["id"],
                                  name=i["name"],
                                  start_time=start_time,
                                  date=start_time.date(),
                                  location=location,
                                  is_date_only=False,
                                  description=i["description"]
                                  if 'description' in i else "")
                        db_session.add(e)
                        db_session.commit()
                        counter += 1
                        print u"%s added:\n %s \n %s \n %s \n" % (
                            p['name'], e.name, e.start_time, e.location)
        except Exception, e:
            print u"Exception: %s" % e
Ejemplo n.º 15
0
    def test_history_current_status(self):
        down = Status.get_by_slug("down")
        up = Status.get_by_slug("up")

        now = datetime(2011, 4, 4, 12, 51)
        event = Event(status=down,
                      service=self.service,
                      start=now,
                      message="HEY")
        event.put()

        history, = self.service.history(1, up, start=date(2011, 4, 5))

        self.assertEquals(history["information"], True)
Ejemplo n.º 16
0
    def post(self, version, service_slug):
        if not self.valid_version(version):
            self.error(404, "API Version %s not supported" % version)
            return

        status_slug = self.request.get("status", default_value=None)
        message = self.request.get("message", default_value=None)
        informational = self.request.get("informational", default_value=None)

        if not message:
            self.error(400, "Event message is required")
            return

        service = Service.get_by_slug(service_slug)

        if not service:
            self.error(404, "Service %s not found" % service_slug)
            return

        if not status_slug:
            event = service.current_event()
            if event:
                status = event.status
            else:
                status = Status.get_default()
        else:
            status = Status.get_by_slug(status_slug)

        if not status:
            self.error(404, "Status %s not found" % status_slug)
            return

        e = Event(status=status, service=service, message=message)
        e.informational = informational and informational == "true"
        e.put()

        # Queue up a task that calls the Twitter API to make a tweet.
        if self.request.get('tweet'):
            logging.info(
                'Attempting to post a tweet for the latest event via async GAE task queue.'
            )
            taskqueue.add(url='/admin/tweet',
                          params={
                              'service_name': service.name,
                              'status_name': status.name,
                              'message': message
                          })

        invalidate_cache()
        self.json(e.rest(self.base_url(version)))
Ejemplo n.º 17
0
def update_event(event_id: str,
                 event: Event,
                 response: Response,
                 db=Depends(get_db)):
    try:
        data = CRUD.update(db, "events", event_id, event.dict())
        return Event(**data)
    except RecordNotFoundException as exc:
        response.status_code = HTTP_404_NOT_FOUND
        return JSONResponse(dict(error=str(exc)))
    except:
        response.status_code = HTTP_400_BAD_REQUEST
        return JSONResponse(dict(error="Failed to update %s record" %
                                 event_id))
Ejemplo n.º 18
0
def post_events(user_obj, **kwargs):
    """
    this function post events on calender app

    """
    event = Event()
    event.user = user_obj
    result = post_or_update_event(event, **kwargs)
    if result['msg']:
        ret = {'success': True, 'msg': 'Event Registered'}
        return ret
    else:
        ret = {'success': False, 'msg': 'Invalid User'}
        return ret
Ejemplo n.º 19
0
def add_to_calendar():
    error = None
    if request.method == 'POST':
        #add to calendar
        google_service = util.get_google_serv(session['google_cred'])
    
        event = request.form['event']
        calendarId = request.form['calendar']

        import ast
        event = ast.literal_eval(event)

        if 'end_time' not in event:
            event['end_time'] = event['start_time']

        if len(event['start_time']) == 10:
            event['start_time'] += "T00:00:00"
        elif len(event['start_time']) > 19:
            event['start_time'] = event['start_time'][0:19]

        if len(event['end_time']) == 10:
            event['end_time'] += "T23:59:59"
        elif len(event['end_time']) > 19:
            event['end_time'] = event['end_time'][0:19]

        if 'location' not in event:
            event['location'] = ''

        eventObj = {
            'summary': event['name'],
            'location': event['location'],
            'start': {
                'dateTime': event['start_time'],
                'timeZone': 'America/New_York'
            },
            'end': {
                'dateTime': event['end_time'],
                'timeZone': 'America/New_York'
            }
        }

        new_event = google_service.events().insert(calendarId=calendarId, body=eventObj).execute()

        #add to database
        db_event = Event(event['name'], event['description'], request.form['id'], event['id'], event['start_time'], event['end_time'], event['location'])
        db.session.add(db_event)
        db.session.commit()

        return new_event['id']
Ejemplo n.º 20
0
Archivo: app.py Proyecto: Leny73/fsnd
    def add_event(jwt):
        body = request.get_json()
        new_name = body.get('name', None)
        new_location = body.get('location', None)

        try:
            event = Event(name=new_name, location=new_location)
            print(event)
            event.insert()

            return jsonify({
                'success': True,
            })
        except Exception as e:
            print(e)
Ejemplo n.º 21
0
def user_exit():
    pass_id = request.json['pass_id']
    exit_time = datetime.datetime.now()
    user = Context.passes.get_by_id(pass_id)
    if user is None:
        return f"Pass ID ={pass_id} does not exist in database", StatusCode.NOT_IN_DATABASE
    prev_event = Context.events.get_last_event_by_id(pass_id)
    if prev_event is None or prev_event.get_event_type() == EXIT:
        return "You are not membership of gym or you don't enter", StatusCode.NOT_ENTER
    event = Event(pass_id, EXIT, exit_time)
    Context.events.create(event)

    statistic.add_visit(exit_time - prev_event.get_time())
    statistic.add_event(event)
    return jsonify(success=True)
Ejemplo n.º 22
0
 def post(self):
     user_id = get_jwt_identity()
     new_event = Event(
         name=request.form.get('name'),
         category=request.form.get('category'),
         place=request.form.get('place'),
         address=request.form.get('address'),
         initial_date=request.form.get('initial_date'),
         end_date=request.form.get('end_date'),
         type=request.form.get('type'),
         user_id=user_id,
     )
     db.session.add(new_event)
     db.session.commit()
     return event_schema.dump(new_event)
Ejemplo n.º 23
0
    def post(self):
        title = self.request.get("title")
        content = self.request.get("content")

        event = Event(
            title=title,
            content=content,
            finished=False,
            scheduled=False,
            user=self.user,
            project=self.get_inbox_project(),
            parent=events_key()
        )
        event.put()
        self.redirect("/collection")
Ejemplo n.º 24
0
def user_enter():
    pass_id = request.json['pass_id']
    user = Context.passes.get_by_id(pass_id)
    if user is None:
        return f"Pass ID ={pass_id} does not exist in database", StatusCode.NOT_IN_DATABASE
    elif user.get_finish_time() < datetime.datetime.now():
        return "Please update your pass", StatusCode.OLD_PASS
    prev_event = Context.events.get_last_event_by_id(pass_id)
    if prev_event and prev_event.get_event_type() == ENTER:
        return "You are already in", StatusCode.ALREADY_IN

    event = Event(pass_id, ENTER, time=datetime.datetime.now())
    statistic.add_event(event)
    Context.events.create(event)
    return jsonify(success=True)
Ejemplo n.º 25
0
def save_event(data, organizer_id, event_venue_id):
	event = Event(
		name = data['name'],
		description = data['description'],
		organizer_id = organizer_id,
		event_type_id = data['event_type_id'],
		event_venue_id = event_venue_id,
		start_date = data['start_date'],
		end_date = data['end_date']
	)

	db.session.add(event)
	db.session.commit()

	return event
Ejemplo n.º 26
0
Archivo: tests.py Proyecto: jsphyin/idb
    def test_add_Event3(self):

        with app.test_request_context():
            event3 = Event()
            init_len = len(Event.query.all())
            db.session.add(event3)
            db.session.commit()
            changed_len = len(Event.query.all())
            self.assertEqual(init_len + 1, changed_len)

            init_len = changed_len
            db.session.delete(event3)
            db.session.commit()
            changed_len = len(Event.query.all())
            self.assertEqual(init_len - 1, changed_len)
Ejemplo n.º 27
0
    def post(self):
        checkLoggedInAndRegistered(self)

        user = users.get_current_user()

        event = Event(time=self.request.get('event_date'),
                      location=self.request.get('location'),
                      category=self.request.get('category'),
                      sentence=self.request.get('sentence'),
                      image=self.request.get('image_url'),
                      where=self.request.get('where'))
        event_key = event.put()
        self.response.write("Event created: " + str(event_key) + "<br>")
        self.response.write("<a href='/allevents'>All events</a> | ")
        self.response.write("<a href='/userevents'>My events</a>")
Ejemplo n.º 28
0
    def setUp(self):
        self.group, created = Group.objects.get_or_create(name='test')
        self.user, created = DjangoUser.objects.get_or_create(
            username=self.username)
        self.user.set_password(self.password)
        self.user.save()
        perspective, created = Perspective.objects.get_or_create(
            name='default')
        perspective.set_default_user()
        perspective.save()

        ModuleSetting.set('default_perspective', perspective.id)

        self.event = Event(name='TestStatus', end=datetime.now())
        self.event.set_default_user()
        self.event.save()
Ejemplo n.º 29
0
    def setUp(self):
        super(StatusChangeHandlerTest, self).setUp()

        # Make an event from a specific user.
        start = datetime.datetime.now() + datetime.timedelta(days=1)
        user = users.User(email="*****@*****.**")
        event = Event(member=user,
                      status="pending",
                      start_time=start,
                      type="Meetup",
                      estimated_size="10",
                      name="Test Event",
                      details="test")
        event.put()

        self.event_id = event.key().id()
Ejemplo n.º 30
0
def handle_log_event(sender, **kwargs):
    domain = kwargs.get("domain")
    actor = kwargs.get("actor")
    variable = kwargs.get("variable")
    pre_value = kwargs.get("pre_value")
    post_value = kwargs.get("post_value")

    if not isinstance(actor, get_user_model()):
        return

    event = Event(domain=domain,
                  actor=actor,
                  variable=variable,
                  pre_value=pre_value,
                  post_value=post_value)
    event.save()