def index(request, year, month): month = int(month) year = int(year) calendar = newcalendar.LinkyCalendar() calendar1 = CalendarVarOne() calendar2 = CalendarVarTwo() if request.method == "POST": form = eventform(request.POST) if form.is_valid(): date = form.cleaned_data['date'] description = form.cleaned_data['description'] ev = Event(date=date, description=description) ev.save() data = {} for event in Event.objects.all(): if event.date.year == year and \ event.date.month == month: data[event.date.day] = fix_date(event.date.day) form = eventform() firstmonth = calendar.formatmonth(year, month, data=data) secondmonth = calendar1.formatmonth(year, month, data=data) thirdmonth = calendar2.formatmonth(year, month, data=data) return render_to_response('index.html', {"calendar1":unicode(firstmonth), "calendar2":unicode(secondmonth), "calendar3":unicode(thirdmonth), "form":form, }, context_instance=RequestContext(request), )
def save(self, request): event = Event() start_date = self.cleaned_data['start_date'] start_time = self.cleaned_data['start_time'] end_time = self.cleaned_data['end_time'] event.start_time = datetime.combine(start_date, start_time) event.end_time = datetime.combine(start_date, end_time) event.event_name = self.cleaned_data['event_name'] event.event_location = self.cleaned_data['event_location'] event.event_organizer = self.cleaned_data['event_organizer'] event.event_description = self.cleaned_data['event_description'] event.event_website = self.cleaned_data['event_website'] event.save() acl = ACLUserEvent() acl.user = request.user acl.event = event acl.save() discussiondefs = ( ('PR', _(u'Discussion of the upcoming %s'), _(u'Discuss the upcoming event %s before it actually happens.')), ('LI', _(u'Live discussion of %s'), _(u'Discuss the ongoing event %s live.')), ('PO', _(u'Post-hoc discussion of %s'), _(u'Discuss %s after the facts.')) ) for s in discussiondefs: thread = Thread() thread.time = datetime.now() thread.user = request.user thread.event = event thread.thread_type = s[0]; thread.title = s[1] % (event.event_name) thread.description = s[2] % (event.event_name) thread.save()
def sheet_event (self, id): """ Create an event """ sheet = Sheet.objects.get_or_404(id = id) if request.method == 'GET' : """ Get all events """ #if 'from' not in request.args or 'to' not in request.args: # abort(400, error = 'missing arguments from and to ') _sheetEvents = Event.objects(sheet=sheet, alive=True) _events = [e.to_json() for e in _sheetEvents ] return jsonify(ok=True, objects=_events),200 if request.method == 'POST': new_event = Event( dates = request.json.get('dates',[]), name = request.json['name'], event_date = request.json['event_date'], description = request.json['description'], location = request.json['location'], public = request.json.get('public',True), links = request.json.get('links',[]), color = request.json.get('color','#fff'), tags = request.json['tags'], alive = True, created_by = str(sheet.created_by), sheet= sheet ) new_event.save() return jsonify(ok=True,objects=[new_event.to_json()]), 201
def get(self, format): events = Event.all().filter("status IN", ["approved", "canceled"]).order("start_time") if format == "ics": cal = Calendar() for event in events: cal.add_component(event.to_ical()) self.response.headers["content-type"] = "text/calendar" self.response.out.write(cal.as_string()) elif format == "json": self.response.headers["content-type"] = "application/json" events = map(lambda x: x.to_dict(summarize=True), Event.get_approved_list()) self.response.out.write(simplejson.dumps(events)) elif format == "rss": url_base = "http://" + self.request.headers.get("host", "events.hackerdojo.com") rss = PyRSS2Gen.RSS2( title="Hacker Dojo Events Feed", link=url_base, description="Upcoming events at the Hacker Dojo in Mountain View, CA", lastBuildDate=datetime.now(), items=[ PyRSS2Gen.RSSItem( title=event.name, link=url_base + event_path(event), description=event.details, guid=url_base + event_path(event), pubDate=event.updated, ) for event in events ], ) self.response.headers["content-type"] = "application/xml" self.response.out.write(rss.to_xml())
def test_hold_and_restore(self): # Put the event on hold. response = self.test_app.post("/api/v1/status_change", self.params) self.assertEqual(200, response.status_int) event = Event.get_by_id(self.event_id) self.assertEqual("onhold", event.status) self.assertNotEqual(None, event.owner_suspended_time) self.assertEqual("pending", event.original_status) # Check that it was logged. log_event = self.__get_latest_log(event) self.assertIn("event on hold", log_event.description) # Restore the event. params = self.params.copy() params["status"] = "active" response = self.test_app.post("/api/v1/status_change", params) self.assertEqual(200, response.status_int) event = Event.get_by_id(self.event_id) self.assertEqual("pending", event.status) self.assertEqual(None, event.owner_suspended_time) self.assertEqual(None, event.original_status) log_event = self.__get_latest_log(event) self.assertIn("Restoring event", log_event.description)
def createEvent(user_id, name, description, location, start_time, end_time, tags, is_private, invite_list): event = Event(user_id, name, description, location, start_time, end_time, tags, is_private, invite_list) new_event = event.save() event_id = new_event['_id'] for invitee in invite_list: EventController.sendInvite(event_id, invitee) CalendarController.addEvent(event_id, user_id)
def eventAdd(request): eventName = request.POST['name'] eventType = request.POST['type'] eventDescription = request.POST['description'] image = request.POST.getall('file') for i in image: imageId = uuid.uuid1() imageUrl = str(imageId) open('/home/mohit/intern/hallwala/HallWala/hallwala/images/%d.jpg' % (imageId), 'wb').write(i.file.read()) for infile in glob.glob("/home/mohit/intern/hallwala/HallWala/hallwala/images/*.jpg"): im = Image.open(infile) # don't save if thumbnail already exists if infile[0:2] != "T_": # convert to thumbnail image im.thumbnail((128, 128), Image.ANTIALIAS) # prefix thumbnail file with T_ im.save("T_" + infile, "JPEG") newEvent = Event(eventName,eventType,eventDescription) DBSession.add(newEvent) DBSession.flush() event = newEvent.getJSON() return {'event' : event}
def logs(tenant_id): if request.method == 'POST': if isinstance(request.json, type('string')): request.json = json.loads(request.json) agent_id = uuid.UUID(request.json['agent_id']) received_on = parse(request.json['received_on']) key_id = uuid.UUID(request.json['key_id']) if request.json['severity'] in ['DEBUG', 'INFO', 'WARN', 'FATAL', 'PANIC']: severity = request.json['severity'] else: severity = 'UNKNOWN' # Load the key and tenant tenant = Tenant.query.get(tenant_id) key = Key.query.filter_by(uuid=str(key_id)).first() ev = Event(tenant_id=tenant_id, agent_id=str(agent_id), received_on=received_on, severity=severity, message=request.json['message'], tenant=tenant, key=key) db_session.add(ev) db_session.commit() return Response(json.dumps(ev.as_dict(), cls=DateTimeJsonEncoder), mimetype='application/json') else: events = Event.query.filter_by(tenant_id=tenant_id).order_by(Event.received_on) events_dicts = map(Event.as_dict, events.all()) return Response(json.dumps(events_dicts, cls=DateTimeJsonEncoder), mimetype='application/json')
def save(self): site=get_site() timezone=pytz.timezone(site.timezone) cleaned_data=self.cleaned_data profile=get_current_profile() if profile.userlevel > 9: credit_name, credit_link= "Staff", None status='approved' approved_on=datetime.now() else: credit_name, credit_link = profile.nickname, profile.link status='submitted' approved_on=None event=Event(title=cleaned_data.get("title"), link=cleaned_data.get("link") or None, description=cleaned_data.get("description")[:250] or None, start=timezone.localize(datetime.combine(cleaned_data.get("start_date"),cleaned_data.get("start_time"))), end=timezone.localize(datetime.combine(cleaned_data.get("end_date") or cleaned_data.get("start_date"),cleaned_data.get("end_time"))), location=cleaned_data.get("location") or None, submitted_by=get_current_profile(), status=status, site=get_site(), cost=cleaned_data.get("cost"), credit_name=credit_name, credit_link=credit_link, approved_on=approved_on, approved_by=profile, ) event.put() return event
def serverisdown (service): # Create a new event with the given status and given service service = Service.get_by_slug(service) status = Status.get_by_slug("down") e = Event(service=service, status=status, message="The server could not be reached") e.put()
def serverisup (service): # Create a new event with the given status and given service service = Service.get_by_slug(service) status = Status.get_by_slug("up") e = Event(service=service, status=status, message="The server is responding.") e.put()
def event(request): if request.method == "POST": try: user = None if not request.user.is_anonymous(): user = request.user session_key = None if request.session is not None: session_key = request.session.session_key e = json.loads(request.body) details = json.dumps(e["details"]) event = Event( dstamp=datetime.now(), app=e["app"], user=user, session=session_key, event_type=e["eventType"], details=details, ) event.save() return HttpResponse("Success", content_type="text/plain", status=status.HTTP_200_OK) except ValueError, e: logger.error("Failed to parse event: " + str(request.body[0:1000])) return HttpResponse("Failed to parse event", content_type="text/plain", status=status.HTTP_400_BAD_REQUEST) except KeyError, e: logger.error("Missing event attributes: " + str(request.body[0:1000])) return HttpResponse( "Missing event attributes", content_type="text/plain", status=status.HTTP_400_BAD_REQUEST )
def get(self, format): events = Event.all().filter('status IN', ['approved', 'canceled']).order('start_time') if format == 'ics': cal = Calendar() for event in events: cal.add_component(event.to_ical()) self.response.headers['content-type'] = 'text/calendar' self.response.out.write(cal.as_string()) elif format == 'json': self.response.headers['content-type'] = 'application/json' events = map(lambda x: x.to_dict(summarize=True), Event.get_approved_list()) self.response.out.write(simplejson.dumps(events)) elif format =='rss': url_base = 'http://' + self.request.headers.get('host', 'events.hackerdojo.com') rss = PyRSS2Gen.RSS2( title = "Hacker Dojo Events Feed", link = url_base, description = "Upcoming events at the Hacker Dojo in Mountain View, CA", lastBuildDate = datetime.now(), items = [PyRSS2Gen.RSSItem( title = event.name, link = url_base + event_path(event), description = event.details, guid = url_base + event_path(event), pubDate = event.updated, ) for event in events] ) self.response.headers['content-type'] = 'application/xml' self.response.out.write(rss.to_xml())
def add_user(): # dummy user and dummy member are created on first request. # user is responsible for creating dummy events. Event.create_table(fail_silently=True) Member.create_table(fail_silently=True) Minute.create_table(fail_silently=True) Picture.create_table(fail_silently=True) User.create_table(fail_silently=True) # # # create a dummy member # try: # member = Member(first_name="Bryan", # last_name="Bennett", # collegiate_chapter="Zeta Omicron " # "(Georgia Southern University)", # initiation_date=datetime.date(2006, 04, 06), # office="Secretary, Warden", # image_path="Bryan_Bennett.jpg") # member.save() # except IntegrityError as e: # print e # # create a dummy user try: admin = User(username='******', email='*****@*****.**', admin=True, active=True) admin.set_password("password") admin.save() except IntegrityError as e: print e
def indexsignup(request): form = AccountsSignupForm(request.POST) print form.is_valid() if form.is_valid(): email = form.cleaned_data['email'] password = form.cleaned_data['password'] realname = form.cleaned_data['realname'] gender = form.cleaned_data['gender'] student = Student.create_user(username=email, email=email, password=password) url_number = len(Student.objects) student.url_number = url_number public_profile = Public_Profile(realname=realname, gender=gender, face=STATIC_URL + 'img/face.png') student.public_profile = public_profile student.save() sscard = S_S_Card(user=student) sscard.save() event = Event(user=student) event.save() user = authenticate(username=email, password=password) request.session.set_expiry(0) if user is not None and user.is_active: login(request, user) return HttpResponseRedirect('/') else: return render_to_response('404.html', {'STATIC_URL':STATIC_URL})
def test_model_event(self): """Test Event model""" event = Event(name="Test", end=datetime.now()) event.save() self.assertNotEquals(event.id, None) event.delete()
def create_event(user, **kwargs): """ server endpoint for creation of events events are created by the user of the neuaer plugin. for example when the user wants to invoke the plugin event upon bluetooth disconnection """ req = CreateEventRequest(request, settings.EVENT) if not req.is_valid(): return jsonify(**req.error_message) event_props = { 'slug' : req.event.get('event_id', None), 'redirect': req.event.get('after_config_redirect', None), 'user': user } event = Event.get_with_slug_user(**event_props) # create the event if it doesn't already exist if not event: event = Event(**event_props) event.put() else: return jsonify(**error_responses('create_event', 'event_exists')) return jsonify(success="created")
def save(self, user): utc = pytz.timezone('UTC') ltz = pytz.timezone(self.cleaned_data['market'].timezone) local_time = ltz.localize(self.cleaned_data['time']) time = local_time.astimezone(utc) thread = Thread( creator = user, subject = self.cleaned_data['title'], site = Site.objects.get_current(), ) thread.save() post = Post( thread = thread, creator = user, body = self.cleaned_data['post'] ) post.save() thread.last_post = post thread.save() event = Event( thread = thread, creator = user, description = self.cleaned_data['description'], location = self.cleaned_data['location'], time = time, market = self.cleaned_data['market'] ) event.save() return event
def event(id, name): time_now = (int)(time.time()) hourly = time_now - (time_now % 3600) key = ndb.Key("Agent",id, "EventType", name, "Script", "random.py", "Hourly", hourly, "Event", time_now) event = Event(key=key, name=name, script="random.py", timestamp=datetime.utcfromtimestamp(time_now), body="Test") event.put() return "OK"
def detail(request, event_id): event = get_document_or_404(Event, id=event_id) if event.date_start: event.date_start = event.date_start.strftime('%d/%m/%Y %H:%M') if event.date_end: event.date_end = event.date_end.strftime('%d/%m/%Y %H:%M') if event.location: event.lat = event.location[0] event.lng = event.location[1] if request.session.get('userid'): template = 'event/event_detail.html' user = Account.objects(id=request.session.get('userid'))[0] event.going = Event.objects(user_going__in=[user], id=event_id) event.going = 'active' if event.going else '' event.maybe = Event.objects(user_maybe__in=[user], id=event_id) event.maybe = 'active' if event.maybe else '' event.decline = Event.objects(user_decline__in=[user], id=event_id) event.decline = 'active' if event.decline else '' else: template = 'event/event_detail_nologin.html' params = {'event':event, 'request':request} return render_to_response(template, params, context_instance=RequestContext(request))
def save_event(request): if request.method == 'GET': q = request.GET.get("js_kind_value") if q: pkind = transform_text(q) kind = verify_kind_exists('kind_value',pkind) if kind is None: if (verify_get_param(request,'js_gender_value') and verify_get_param(request,'js_age_value')): new_kind = Kind(kind_value= pkind,gender_target=request.GET.get('js_gender_value'), age_target=request.GET.get('js_age_value')) new_kind.save() kind = Kind.objects.get(kind_value=pkind) elif request.GET.get('kind_choice'): kind = verify_kind_exists('id',request.GET.get('kind_choice')) print kind else: pass event_name_value = request.GET.get("js_event_name") description_event_value = request.GET.get("js_event_description") if event_name_value is not '' and description_event_value is not '': event_name_value = transform_text(event_name_value) existent_name = verify_event_properties_exists('name', event_name_value) description_event_value = transform_text(description_event_value) existent_description = verify_event_properties_exists('description', description_event_value) # An event with the passed name or description could not be already stored.. if existent_description is None and existent_name is None: new_event = Event(name=event_name_value, description=description_event_value, creation_date = datetime.now, kind_event = kind) new_event.save() return determine_interested_people(request, new_event) return render_to_response('event_creation/home.html', {'email_address' : request.session['email_address_user'],'error_message' : 'Event name/description already exist','kind_form' : KindEventForm(request.GET)}, RequestContext(request)) return render_to_response('event_creation/home.html', {'email_address' : request.session['email_address_user'],'error_message' : 'An error has occurred','kind_form' : KindEventForm(request.GET)}, RequestContext(request)) return render_to_response('event_creation/home.html', {'email_address' : request.session['email_address_user'],'error_message': 'An error has occurred','kind_form' : KindEventForm(request.GET)}, RequestContext(request))
def update(request): xml = getXML() updateHour = datetime.datetime.now() entry = Update.objects.get(id=1) entry.hour = updateHour entry.save() content = xml.findAll("contenido") events = Event.objects.all() for line in content: (title, dateTime, hourEnd, price, eventType, duration, description, url) = getEvent(line) found = False for event in events: if (event.title == title): if (str(event.date) == str(dateTime)): found = True if (found == False): entry = Event(title=title, date=dateTime, dateEnd=hourEnd, price=price, eventType=eventType, duration=duration, url=url, description=description, likes=0) entry.save() return HttpResponseRedirect("/todas")
def event_examples(): """List all events""" event = Event.query() form = EventForm() if form.validate_on_submit(): event = Event( #event_id= title=form.title.data, day=form.day.data, location=form.location.data, description=form.descrtiption.data, anchor_amount=form.anchor_amount.data, amount_min=form.amount_min.data, max_attendees=form.max_attendees.data, registration_start=form.registration_start.data, registration_end=form.registration_end.data, added_by=users.get_current_user() ) try: event.put() event_id = event.key.id() flash(u'Event %s successfully saved.' % event_id, 'success') return redirect(url_for('event_examples')) except CapabilityDisabledError: flash(u'App Engine Datastore is currently in read-only mode.', 'info') return redirect(url_for('event_examples')) return render_template('event_gae.html', event=event, form=form)
def call_api(service, data): '''Submit service status to API''' service = Service.get_by_slug(service) status = Status.get_by_slug(data['status']) e = Event(service=service, status=status, message=data['message']) print json.dumps(data, sort_keys=True, skipkeys=True) e.put()
def post(self): entity_key_urlsafe = self.request.get("entity_key") if (self.request.get('type') == 'Event'): if entity_key_urlsafe: event_key = ndb.Key(urlsafe=entity_key_urlsafe) event = event_key.get() timestamp = datetime.datetime.strptime(self.request.get("date"), "%Y-%m-%dT%H:%M") event.date = timestamp.date() event.time = timestamp.time() event.title = self.request.get("title") event.description = self.request.get("description") event.put() else: timestamp = datetime.datetime.strptime(self.request.get("date"), "%Y-%m-%dT%H:%M") new_event = Event(parent=PARENT_KEY, date=timestamp.date(), time=timestamp.time(), title=self.request.get('title'), description=self.request.get('description')) new_event.put() elif (self.request.get('type') == 'Announcement'): if entity_key_urlsafe: announcement_key = ndb.Key(urlsafe=entity_key_urlsafe) announcement = announcement_key.get() announcement.title = self.request.get("title") announcement.description = self.request.get("description") announcement.put() else: new_announcement = Announcement(parent=PARENT_KEY, title=self.request.get('title'), description=self.request.get('description')) new_announcement.put() self.redirect(self.request.referer)
def post(self): user = users.get_current_user() try: start_time = datetime.strptime('%s %s:%s %s' % ( self.request.get('date'), self.request.get('start_time_hour'), self.request.get('start_time_minute'), self.request.get('start_time_ampm')), '%m/%d/%Y %I:%M %p') end_time = datetime.strptime('%s %s:%s %s' % ( self.request.get('date'), self.request.get('end_time_hour'), self.request.get('end_time_minute'), self.request.get('end_time_ampm')), '%m/%d/%Y %I:%M %p') conflicts = Event.check_conflict(start_time,end_time,self.request.get_all('rooms')) if conflicts: raise ValueError('Room conflict detected') if not self.request.get('estimated_size').isdigit(): raise ValueError('Estimated number of people must be a number') if not int(self.request.get('estimated_size')) > 0: raise ValueError('Estimated number of people must be greater then zero') if (end_time-start_time).days < 0: raise ValueError('End time must be after start time') if ( self.request.get( 'contact_phone' ) and not is_phone_valid( self.request.get( 'contact_phone' ) ) ): raise ValueError( 'Phone number does not appear to be valid' ) else: event = Event( name = cgi.escape(self.request.get('name')), start_time = start_time, end_time = end_time, type = cgi.escape(self.request.get('type')), estimated_size = cgi.escape(self.request.get('estimated_size')), contact_name = cgi.escape(self.request.get('contact_name')), contact_phone = cgi.escape(self.request.get('contact_phone')), details = cgi.escape(self.request.get('details')), url = cgi.escape(self.request.get('url')), fee = cgi.escape(self.request.get('fee')), notes = cgi.escape(self.request.get('notes')), rooms = self.request.get_all('rooms'), expired = local_today() + timedelta(days=PENDING_LIFETIME), # Set expected expiration date ) event.put() log = HDLog(event=event,description="Created new event") log.put() notify_owner_confirmation(event) notify_new_event(event) set_cookie(self.response.headers, 'formvalues', None) self.redirect('/event/%s-%s' % (event.key().id(), slugify(event.name))) except Exception, e: message = str(e) if 'match format' in message: message = 'Date is required.' if message.startswith('Property'): message = message[9:].replace('_', ' ').capitalize() # This is NOT a reliable way to handle erorrs #set_cookie(self.response.headers, 'formerror', message) #set_cookie(self.response.headers, 'formvalues', dict(self.request.POST)) #self.redirect('/new') error = message self.response.out.write(template.render('templates/error.html', locals()))
def send_event(actor, type, path, **context): """ Log an event performed by actor, of the type, on the path, and any other context arguments needed to render notification templates. """ # Todo, make sure notifications aren't sent too quickly one after another. if isinstance(path, models.Model): object = path path = model_sig(path) else: object = get_instance_from_sig(path) # Build a context to render templates context = context.copy() context['actor'] = actor context['path'] = path context['type'] = type context['object'] = object context['settings'] = settings context['DOMAIN'] = settings.DOMAIN # Find users to be notified subscriptions = Subscription.objects.filter(path=path, toggle=True) users = set([s.user for s in subscriptions]) users.discard( actor ) logger.info("Event: %s %s %s", actor, type, path) # Create the event, yo e = Event( actor = actor, type = type, path = path ) streams = set([actor]) # Trigger event signal # Receivers are expected to alter notify or context. for reciever, response in event.send(sender=e, notify=users, streams=streams, **context): if isinstance(response, dict): context.update(response) e.save() for stream in streams: e.add_to_stream(stream) # Notify all the ya'lls messages = [] for user in users: notice = Notice.objects.create(user=user) notice.events = [e] try: msg = render_mail(user.email, type, context) messages.append(msg) except Exception, x: print "Error sending email:", x
def test_create(self): import datetime event = Event(name='Test Event', date=datetime.date(2012, 1, 1)) event.save() res = self.client.get('/events/2012/jan/') self.assertEqual(res.status_code, 200)
def event_insert(self, request): """insert or update an event""" if request.from_datastore: my_event = request else: my_event = Event(parent=main.PARENT_KEY, date=request.date, time=request.time, title=request.title, description=request.description) my_event.put() return my_event
def get(self): db.delete(Event.all().fetch(500)) event_count = Event.all().count() self.response.out.write("Events flushed. " + str(event_count) + " teams remain. What have we done?!")
u = User.query.first() if u is None: print('creating user') u = User(first_name='Vladimir', last_name='Putin', email='*****@*****.**', password='******', phone='89161234567') db.session.add(u) db.session.commit() u = User.query.first() e1 = Event(start=db.func.now(), end=db.func.now(), title='title1', desc='desc1', creator_id=u.id) e2 = Event(start=db.func.now(), end=db.func.now(), title='title2', desc='desc2', creator_id=u.id) e = Event.query.first() if e is None: print('creating events') db.session.add(e1) db.session.add(e2) db.session.commit() e = Event.query.first()
async def load_1617velv(cls): tasks = [] with open("data/ftc-data/events/1617velv/1617velv-event-list.csv") as f: csv_reader = csv.reader(f.read().split("\n")) for row in csv_reader: if not row: continue sdate = list(map(int, row[0].split("/"))) date = datetime.datetime(year=sdate[2], month=sdate[0], day=sdate[1]) name, state, fevent_type, _, region_code, ecode, divid, ftcdata_code, state_abbr, data_quality = [a.strip() for a in row[1:]] name = name.strip() if region_code in ("pa", "esr"): # ftcpenn loads this better than ftcdata ever did because it provides awards data, # there's no point in us covering it continue event_type = cls.EVENT_TYPE_MAP[fevent_type] if state.endswith(" SR"): event_type = EventType.SUPER_REGIONAL elif state.startswith("CMP "): event_type = EventType.WORLD_CHAMPIONSHIP divno = -1 # append "Division" to the end of names if (ecode.endswith("d0") or ecode.endswith("d1") or ecode.endswith("d2")): divno = int(ecode[-1]) ecode = ecode[:-2] #name += " Division" region = None rcode = { "txno": "txntx", "txwp": "txph", "nynyc": "nyc", "io": "ia", "nm": "az", }.get(region_code, region_code) if ecode == "cmphs": rcode = "mihs" elif rcode in ("wsr", "nsr", "ssr", "cmptx", "cmpmo"): ecode = "" region = None if ecode: region = await RegionHelper.region_unabbrev(rcode) if "Canada" in name: country = "Canada" else: country = "USA" event = Event(key=f"1617{rcode}{ecode}", year=2016, name=name, state_prov=state, country=country, start_date=date, end_date=date, event_type=event_type, region=region, playoff_type=PlayoffType.STANDARD) if divno > -1: if divno == 0: event.division_keys = [event.key + "1", event.key + "2"] else: event.parent_event_key = event.key + "0" event.key += str(divno) event.event_code = ftcdata_code base = f"data/ftc-data/events/1617velv/{region_code.lower()}/1617velv-{ftcdata_code}" if os.path.exists(base + "-MatchResultsDetails.html"): with open(base + "-MatchResultsDetails.html") as f: matches = ResultsPageHelper.load_match_details(BeautifulSoup(f.read(), 'lxml'), event.key) if os.path.exists(base + "-MatchResultsRaw.csv"): MatchDetailsHelper.parse_ftcdata_csv(matches, base + "-MatchResultsRaw.csv") elif os.path.exists(base + "-MatchResults.html"): with open(base + "-MatchResults.html") as f: matches = ResultsPageHelper.load_matches(BeautifulSoup(f.read(), 'lxml'), event.key) else: print("warning: ", event.key, "don't exists!") continue with open(base + "-Rankings.html") as f: rankings = ResultsPageHelper.load_rankings(BeautifulSoup(f.read(), 'lxml'), matches) tasks.append(asyncio.create_task(EventHelper.insert_event(event, matches, rankings, None, tolerate_missing_finals=True, data_source="cheer4ftc ftc-data repository"))) #print("loaded " + event.key) await asyncio.gather(*tasks)
def get(self): start_template = jinja_current_dir.get_template("html/myevents.html") logged_in_user = users.get_current_user() events = Event.query().filter( Event.owner_id == logged_in_user.user_id()).fetch() self.response.write(start_template.render({'my_events': events}))
import feedparser from datetime import datetime from models import Event ColumbiaBuildings = [ 'Lerner', 'Butler', 'John Jay', 'Carmen', 'Hartley', 'Wallach', 'Hamilton', 'Furnald', 'Mcbain', 'Broadway', 'Schapiro', 'Ruggles', 'Hogan', 'Watt', 'EC', 'East Campus', 'Journalism', 'Kent', 'Dodge', 'Philosophy', 'Maison Francaise', 'Buell', 'Lewisohn', 'Mathematics', 'Math', 'Pupin', 'Northwest Corner', 'NoCo', 'Noco', 'Mudd', 'Schermerhorn', 'Avery', 'Fayerweather', 'Havemeyer', 'Uris', 'Wein', 'Woodbridge', 'River', 'Fitness Center', 'Low Plaza', 'Furnald Lawn', 'Teacher\'s College', 'Low Library', 'SIPA', 'International Affairs', 'Law School', 'Casa Italiana', 'Casa Hispanica', 'Earl', 'Barnard', 'Diana', 'Vag', 'Hewitt', 'Altschul', 'Claremont', 'College Walk' ] urltoscrape = 'http://bwog.com/feed/' d = feedparser.parse(urltoscrape) for entry in d.entries: for cat in entry.categories: if cat[1] == "free food": e = Event(date=entry.date, location="Columbia", description=entry.title, source=entry.link) e.save() print entry.date print entry.title print entry.link print "\n"
from models import Event from timeline.shared_sources import NAVARRO_CIRCULATES_MEMOS_WARNING_OF_HUGE_DEATH_POTENTIAL Event( date="2020-02-24", title= "Trump says coronavirus 'very much under control', stock market is 'starting to look very good to me.'", description=""" A day after Navarro warned 1-2 million people in the US could die, Trump tweeted his regular dose of nonsense. """, people=["Trump"], sources=[ NAVARRO_CIRCULATES_MEMOS_WARNING_OF_HUGE_DEATH_POTENTIAL, ], )
def testdb_command(): """Creates the database tables.""" db.drop_all() db.create_all() # Add owner owner = Staff(firstname="Katie", lastname="Pucci", username="******", password="******", email="*****@*****.**", admin=True) db.session.add(owner) print("Added owner") # Create a customer customer_1 = Customer(username="******", password="******", email="*****@*****.**") print("Created customer") db.session.add(customer_1) print("Added customer") start_1 = datetime.date(2017, 10, 5) end_1 = datetime.date(2017, 10, 6) # Create an event event_1 = Event(name="Event 1", start=start_1, end=end_1) print("Created event") # Append the event to customer and add event customer_1.events.append(event_1) print("Appended event to customer") db.session.add(event_1) print("Added event") # Set event customer id event_1.customer = customer_1 print("Set event customer id") print("Customer name: " + event_1.customer.username) # Create a staff member staff_1 = Staff(firstname="Jane", lastname="Doe", username="******", password="******", email="*****@*****.**", admin=False) print("Created staff member 1") db.session.add(staff_1) print("Added staff member 1") # Create another staff member staff_2 = Staff(firstname="John", lastname="Deer", username="******", password="******", email="*****@*****.**", admin=False) print("Created staff member 2") db.session.add(staff_2) print("Added staff member 2") # Append event to staff_1's schedule staff_1.schedule.append(event_1) # Append staff member to event # event_1.workers.append(staff_1) # Append event to staff_1's schedule staff_2.schedule.append(event_1) # Append staff member to event # event_1.workers.append(staff_2) start_2 = datetime.date(2017, 11, 5) end_2 = datetime.date(2017, 11, 6) # Create another event event_2 = Event(name="Event 2", start=start_2, end=end_2) print("Created event 2") # Append the event to customer and add event customer_1.events.append(event_2) print("Appended event 2 to customer") db.session.add(event_2) print("Added event 2") # Set event customer id event_2.customer = customer_1 print("Set event customer id") # Append event to staff_1's schedule # staff_1.schedule.append(event_2) # Append staff member to event # event_2.workers.append(staff_1) db.session.commit() print('Initialized the database.') staff1 = Staff.query.filter_by(username="******").first() staff1_events = staff_1.schedule for e in staff1_events: print("Event: ", e.name) event1 = Event.query.filter_by(name="Event 1").first() event1_staff = event1.workers for w in event1_staff: print("Staff: ", w.username)
def edit(id=1): try : # check_admin() # users = User.query.all() users = User.query.filter(User.is_active == True).all() guests = users items = Item.query.filter(Item.is_active == True).all() addresses = Address.query.filter(Address.is_active == True).all() events = Event() event = Event.query.get_or_404(id) form = Form_Record_Add(request.form) if request.method == 'POST': if form.validate(): sanitize_form = { 'type' : form.type.data, 'title_en_US' : form.title_en_US.data, 'title_fr_FR' : form.title_fr_FR.data, 'description_en_US' : sanitize_html(form.description_en_US.data), 'description_fr_FR' : sanitize_html(form.description_fr_FR.data), 'amount' : decimal.Decimal(form.amount.data), 'user' : form.user.data, 'item' : form.item.data, 'address' : form.address.data, 'guests' : form.guests.data, 'start' : form.start.data, 'end' : form.end.data, 'allday' : form.allday.data, 'status' : form.status.data, 'is_active' : form.is_active.data } events.update_data(event.id, sanitize_form) logger.info("Editing a new record.") if request_wants_json(): return jsonify(data = { message :"Record updated successfully.", form: form }), 200, {'Content-Type': 'application/json'} else : flash("Record updated successfully.", category="success") return redirect("/events") form.action = url_for('events_page.edit', id = event.id) form.type.data = event.type form.title_en_US.data = event.title_en_US form.title_fr_FR.data = event.title_fr_FR form.description_en_US.data = event.description_en_US form.description_fr_FR.data = event.description_fr_FR form.amount.data = event.amount if event.user : form.user.data = event.user.id if event.item : form.item.data = event.item.id if event.address : form.address.data = event.address.id if event.guests : form.guests.data = event.guests # form.start.data = string_timestamp_utc_to_string_datetime_utc(event.start, '%Y-%m-%d %H:%M:%S') form.start.data = string_timestamp_utc_to_string_datetime_utc(event.start, '%Y-%m-%d') # form.end.data = string_timestamp_utc_to_string_datetime_utc(event.end, '%Y-%m-%d %H:%M:%S') form.end.data = string_timestamp_utc_to_string_datetime_utc(event.end, '%Y-%m-%d') form.allday.data = event.allday form.status.data = event.status form.is_active.data = event.is_active # html or Json response if request_wants_json(): return jsonify(data = form), 200, {'Content-Type': 'application/json'} else: return render_template("events/edit.html", form=form, addresses = addresses, items = items, users = users, guests = guests, title_en_US='Edit', app = app) except Exception, ex: print("------------ ERROR ------------\n" + str(ex.message)) flash(str(ex.message), category="warning") abort(404)
def reset_db_with_fixtures(db=db): db.drop_all() db.create_all() #----------------------------------------------------------------------------# # Fixtures - organisation #----------------------------------------------------------------------------# org0 = Organisation( auth0_id='auth0|60c58135612d820070a5f049', name='Test Organisation', description='Test organisation authenticated through Auth0', website='http://mywebsite.com', phone_contact='1111111', email_contact='*****@*****.**') org0.insert() org1 = Organisation(name='Pet Welfare Society', description='Open your heart to a cat in need', website='https://www.catwelfare.org/', email_contact='*****@*****.**', phone_contact='96111111') org1.insert() org2 = Organisation( name='East Youths', description='An organisation of youths for the community', website='eastyouths.org', email_contact='*****@*****.**') org2.insert() #----------------------------------------------------------------------------# # Fixtures - users #----------------------------------------------------------------------------# u0 = User(auth0_id='auth0|60c58174612d820070a5f057', name='Test User', age=17, email_contact='*****@*****.**', phone_contact='1111111', join_date=datetime(2020, 5, 21, 21, 30, 0), skills=['cooking', 'web development']) u0.insert() u1 = User(name='User01', age=31, email_contact='*****@*****.**', phone_contact='1111111', join_date=datetime(2020, 7, 1, 0, 0, 0), skills=['counselling']) u1.insert() u2 = User(name='User02', age=45, email_contact='*****@*****.**', phone_contact='1111111', join_date=datetime(2019, 12, 12, 0, 0, 0), skills=None) u2.insert() u3 = User(name='User03', age=28, email_contact='*****@*****.**', phone_contact='1111111', join_date=datetime(2020, 12, 12, 0, 0, 0), skills=['counselling']) u3.insert() #----------------------------------------------------------------------------# # Fixtures - Events #----------------------------------------------------------------------------# e0 = Event(name='test event 0', description='this is a test event', start_datetime=datetime(2021, 1, 12, 10, 0, 0), end_datetime=datetime(2021, 1, 12, 12, 0, 0), address='London SW1A 0AA, UK', organisation=org0, participants=[u0, u1]) e0.insert() e1 = Event(name='test event 1', description='this is a test event', start_datetime=datetime(2021, 1, 12, 17, 0, 0), end_datetime=datetime(2021, 1, 12, 18, 0, 0), address='London SW1A 0AA, UK', organisation=org1, participants=[u0]) e1.insert() e2 = Event(name='test event 2', description='this is a test event', start_datetime=datetime(2021, 3, 1, 10, 0, 0), end_datetime=datetime(2021, 3, 1, 12, 0, 0), address='London SW1A 0AA, UK', organisation=org2, participants=[u1, u3]) e2.insert() e3 = Event(name='test event 3', description='this is a test event', start_datetime=datetime(2021, 4, 1, 10, 0, 0), end_datetime=datetime(2021, 4, 1, 12, 0, 0), address='London SW1A 0AA, UK', organisation=org2, participants=[u0, u1, u3]) e3.insert() e4 = Event(name='test event 4', description='this is a test event', start_datetime=datetime(2021, 5, 1, 10, 0, 0), end_datetime=datetime(2021, 5, 1, 12, 0, 0), address='London SW1A 0AA, UK', organisation=org2, participants=[u0, u2, u3]) e4.insert()
from models import Event from timeline.shared_sources import NAVARRO_CIRCULATES_MEMOS_WARNING_OF_HUGE_DEATH_POTENTIAL Event( date="2020-02-23", title= "Navarro sends second dire memo, warns 1-2 Million could die, warns of PPE and ventilator needs", description=""" Trump economic advisor Peter Navarro circulated a second memo, this time to officials throughout the NSC. Specifically it warned: * 1-2 million people could die * 100 million people could catch the virus * We would need over a billion face masks, 200,000 Tyvek suits, 11,000 ventilator circuits, 25,000 powered air-purifying respirators (PAPR's). It then asked for $3 Billion to support efforts at prevention, treatment, inoculation and diagnostics. """, people=["Navarro", "Trump"], sources=[ NAVARRO_CIRCULATES_MEMOS_WARNING_OF_HUGE_DEATH_POTENTIAL, ], )
def post(self): user_id = self.request.get('user_id') event_id = self.request.get('event_id') event = Event.get_by_id(int(event_id)) operation = self.request.get('operation') if (operation == "load"): if (user_id == event.userId): template_values = { 'event': event } template = JINJA_ENVIRONMENT.get_template('event_update.html') self.response.write(template.render(template_values)) else: template = JINJA_ENVIRONMENT.get_template('index.html') self.response.write(template.render()) elif (operation == "people_for_event"): user_id = self.request.get('user_id') event_id = int(self.request.get('event_id')) event = Event.get_by_id(event_id) event_people = [] for person_id in event.event_people: person = Person.get_by_id(int(person_id)) event_people.append({"person_id": person_id, "display_name": person.display_name, "image_url": person.image_url }) event_people_set = set(event.event_people) person_keys = (Person.query(Person.userId == user_id).fetch(keys_only=True)) all_people = [] for key in person_keys: all_people.append(key.id()) clean_people = [x for x in all_people if x not in event_people_set] all_people = [] for person_id in clean_people: person = Person.get_by_id(int(person_id)) all_people.append({"person_id": person_id, "display_name": person.display_name, "image_url": person.image_url }) event_sharing_set = set(event.event_sharing) my_key = Person.query(Person.plus_id == user_id).get(keys_only=True) event_sharing_set.add(my_key.id()) available_sharing = [] for key in person_keys: available_sharing.append(key.id()) clean_sharing = [x for x in available_sharing if x not in event_sharing_set] available_sharing = [] for person_id in clean_sharing: person = Person.get_by_id(int(person_id)) available_sharing.append({"person_id": person_id, "display_name": person.display_name, "image_url": person.image_url, "email": person.email }) event_sharing = [] for person_id in event.event_sharing: person = Person.get_by_id(int(person_id)) event_sharing.append({"person_id": person_id, "display_name": person.display_name, "image_url": person.image_url, "email": person.email }) ret_data = { "all_people": all_people, "event_people": event_people, "available_sharing": available_sharing, "event_sharing": event_sharing } self.response.write(json.dumps(ret_data)) elif (operation == "photos_for_event"): user_id = self.request.get('user_id') event_id = self.request.get('event_id') event = Event.get_by_id(int(event_id)) photo_keys = (Photo.query(Photo.userId == user_id).fetch(keys_only=True)) event_photos_set = set(event.event_photos) event_photos = [] for photo_id in event.event_photos: photo = Photo.get_by_id(int(photo_id)) event_photos.append({"photo_id": photo_id, "drive_id": photo.drive_id, "thumbnailLink": photo.thumbnailLink }) all_photos = [] for photo_key in photo_keys: all_photos.append(photo_key.id()) clean_photos = [x for x in all_photos if x not in event_photos_set] all_photos = [] for photo_id in clean_photos: photo = Photo.get_by_id(int(photo_id)) all_photos.append({"photo_id": photo_id, "drive_id": photo.drive_id, "thumbnailLink": photo.thumbnailLink }) ret_data = { "all_photos": all_photos, "event_photos": event_photos } self.response.write(json.dumps(ret_data)) elif (operation == "change_people"): person_id = int(self.request.get('person_id')) change_to = self.request.get('change_to') if (change_to == "connected"): event.event_people.append(person_id) event.put() else: if person_id in event.event_people: event.event_people.remove(person_id) event.put() else: person = Person.get_by_id(person_id) person.person_events.remove(event_id) person.put() elif (operation == "change_photos"): photo_id = int(self.request.get('photo_id')) change_to = self.request.get('change_to') if (change_to == "connected"): event.event_photos.append(photo_id) event.put() else: event.event_photos.remove(photo_id) event.put() user_id = self.request.get('user_id') shared = self.request.get('shared_list') shared_list = shared.split(',') if (len(shared_list)): shared_list.pop() return_shared = "" for person_id in shared_list: eventsForShared = Event.query(Event.userId == user_id).filter(Event.event_sharing.IN([int(person_id)])) if (eventsForShared.count() == 0): return_shared += "%s," % (person_id) self.response.write(return_shared) elif (operation == "submit_update"): event_id = int(self.request.get('event_id')) event = Event.get_by_id(event_id) ce_date = date(year=int(self.request.get('ce_date_year')), month=int(self.request.get('ce_date_month')), day=int(self.request.get('ce_date_day'))) event.title = self.request.get('ce_title') event.event_date = ce_date event.location = self.request.get('ce_location') event.description = self.request.get('ce_description') event.userId = self.request.get('ce_user_id') event.put() elif (operation == "change_sharing"): event_id = int(self.request.get('event_id')) person_id = int(self.request.get('person_id')) change = self.request.get('change') event = Event.get_by_id(event_id) if (change == "available"): event.event_sharing.append(person_id) event.put() else: event.event_sharing.remove(person_id) event.put()
published="2020-03-06", url= "https://www.nytimes.com/2020/03/06/us/politics/trump-coronavirus-cdc.html", article_copy="sources/2020-03-06-new-york-times-trump-coronavirus-cdc.pdf", ) Event( date="2020-03-06", title="Trump says, 'Anyone who wants a test can get one'", description=""" This was, of course, not true. At this time only ~10,000 tests had been run in the entire US. """, people=["Trump"], sources=[ TRUMP_SAYS_ANYONE_WHO_WANTS_A_TEST_CAN_GET_ONE, Source( title="Testing in the U.S.", publication="CDC", published="2020-04-14", url= "https://www.cdc.gov/coronavirus/2019-ncov/cases-updates/testing-in-us.html", article_copy="sources/2020-04-14-cdc-coronavirus-testing.pdf", ), ], ) Event( date="2020-03-06", title= "Trump wants infected Americans to stay on cruise ship to keep case numbers low", description="""
from models import Event, Source Event( date="2020-05-18", title= "Trump claims to be taking hydroxychloroquine to protect against coronavirus", description=""" He claims he has been since about around May 8th even though the drug has severe side effects. As usual we are given the difficult task of choosing between two options: 1. He is lying to us. 2. He is really that dumb. """, people=["Trump"], sources=[ Source( title= "Trump says he is taking hydroxychloroquine to protect against coronavirus, dismissing safety concerns", publication="The Washington Post", published="2020-05-18", url= "https://www.washingtonpost.com/politics/trump-says-he-is-taking-hydroxychloroquine-to-protect-against-coronavirus-dismissing-safety-concerns/2020/05/18/7b8c928a-9946-11ea-ac72-3841fcc9b35f_story.html", article_copy= "sources/2020-05-18-the-washington-post-trump-says-he-is-taking-hydroxychloroquine-to-protect-against-coronavirus-dismissing-safety-concerns.pdf", ), ], )
def save(self, request): event = Event() start_date = self.cleaned_data['start_date'] start_time = self.cleaned_data['start_time'] end_time = self.cleaned_data['end_time'] event.start_time = datetime.combine(start_date, start_time) event.end_time = datetime.combine(start_date, end_time) event.event_name = self.cleaned_data['event_name'] event.event_location = self.cleaned_data['event_location'] event.event_organizer = self.cleaned_data['event_organizer'] event.event_description = self.cleaned_data['event_description'] event.event_website = self.cleaned_data['event_website'] event.save() acl = ACLUserEvent() acl.user = request.user acl.event = event acl.save() discussiondefs = (( 'PR', _(u'Discussion of the upcoming %s'), _(u'Discuss the upcoming event %s before it actually happens.')), ('LI', _(u'Live discussion of %s'), _(u'Discuss the ongoing event %s live.')), ('PO', _(u'Post-hoc discussion of %s'), _(u'Discuss %s after the facts.'))) for s in discussiondefs: thread = Thread() thread.time = datetime.now() thread.user = request.user thread.event = event thread.thread_type = s[0] thread.title = s[1] % (event.event_name) thread.description = s[2] % (event.event_name) thread.save()
def new(): try : users = User.query.filter(User.is_active == True).all() guests = users items = Item.query.filter(Item.is_active == True).all() addresses = Address.query.filter(Address.is_active == True).all() form = Form_Record_Add(request.form) if request.method == 'POST': if form.validate(): events = Event() sanitize_form = { 'type' : form.type.data, 'title_en_US' : form.title_en_US.data, 'title_fr_FR' : form.title_fr_FR.data, 'description_en_US' : sanitize_html(form.description_en_US.data), 'description_fr_FR' : sanitize_html(form.description_fr_FR.data), 'amount' : decimal.Decimal(form.amount.data), 'user' : form.user.data, 'item' : form.item.data, 'address' : form.address.data, 'guests' : form.guests.data, 'start' : form.start.data, 'end' : form.end.data, 'allday' : form.allday.data, 'status' : form.status.data, 'is_active' : form.is_active.data } events.create_data(sanitize_form) logger.info("Adding a new record.") if request_wants_json(): return jsonify(data = { message :"Record added successfully.", form: form }), 200, {'Content-Type': 'application/json'} else : flash("Record added successfully.", category="success") return redirect("/events") form.action = url_for('events_page.new') # form.start.data = datetime.now().strftime('%Y-%m-%d %H:%M:%S') form.start.data = datetime.now().strftime('%Y-%m-%d') # form.end.data = datetime.now().strftime('%Y-%m-%d %H:%M:%S') form.end.data = datetime.now().strftime('%Y-%m-%d') # html or Json response if request_wants_json(): return jsonify(data = form), 200, {'Content-Type': 'application/json'} else: return render_template("events/edit.html", form=form, addresses = addresses, items=items, users = users, guests = guests, title_en_US='New', app = app) except Exception, ex: print("------------ ERROR ------------\n" + str(ex.message)) flash(str(ex.message), category="warning") abort(404)
from models import Event, Source Event( date="2020-05-15", title="Trump fires State Department inspector general", description=""" From the article, > A Democratic congressional aide said Linick was looking into Pompeo’s “misuse of a political appointee at the Department to perform personal tasks for himself and Mrs. Pompeo.” """, people=["Trump", "Pompeo"], sources=[ Source( title= "Top Democrats launch investigation into late-night firing of State Department inspector general", publication="The Washington Post", published="2020-05-16", url= "https://www.washingtonpost.com/politics/2020/05/16/state-department-inspector-general-fired-democrats-decry-dangerous-pattern-retaliation/", article_copy= "sources/2020-05-16-the-washington-post-top-democrats-launch-investigation-into-latenight-firing-of-state-department-inspector-general.pdf", ), ], )
def map_heatmap(): events = Event.find() return render_template('map_heatmap.html', events=events)
def customer_profile(username=None): if request.method == "GET": if Customer.query.filter_by( username=session.get("logged_in")).scalar() is not None: customerObj = Customer.query.filter_by( username=session.get("logged_in")).first() events_list = Event.query.order_by(Event.start).filter( (Event.customer == customerObj) & (Event.end >= datetime.datetime.now())).all() return render_template( "customer.html", username=session.get("logged_in"), datemin=datetime.datetime.now().strftime('%Y-%m-%d'), events=events_list) else: flash('You need to login to access this account') return redirect(url_for('default')) elif request.method == "POST": if "cancel_button" in request.form: customerObj = Customer.query.filter_by( username=session.get("logged_in")).scalar() event_to_delete = Event.query.filter( (Event.name == request.form["cancel_button"]) & (Event.customer == customerObj)).delete() try: db.session.commit() flash("The event was canceled.") return redirect( url_for("customer_profile", username=session.get("logged_in"))) except exc.SQLAlchemyError: flash("There was a problem canceling the event.") return redirect( url_for("customer_profile", username=session.get("logged_in"))) else: if request.form["endDate"] < request.form["startDate"]: flash( "The end date must be greater than or equal to the start date." ) return redirect( url_for("customer_profile", username=session.get("logged_in"))) elif Event.query.filter_by( name=request.form["eventName"]).scalar() is not None: flash("There is already an event with that name.") return redirect( url_for("customer_profile", username=session.get("logged_in"))) elif Event.query.filter((Event.start == request.form["startDate"]) | (Event.end == request.form["endDate"]) | (Event.start == request.form["endDate"]) | (Event.end == request.form["startDate"]) ).scalar() is not None: flash( "There is already an event scheduled for the requested dates." ) return redirect( url_for("customer_profile", username=session.get("logged_in"))) elif Event.query.filter((Event.start <= request.form["endDate"]) & (Event.end >= request.form["endDate"]) ).scalar() is not None: flash( "There is already an event scheduled for the requested dates." ) return redirect( url_for("customer_profile", username=session.get("logged_in"))) elif Event.query.filter((Event.start <= request.form["startDate"]) & (Event.end >= request.form["startDate"]) ).scalar() is not None: flash( "There is already an event scheduled for the requested dates." ) return redirect( url_for("customer_profile", username=session.get("logged_in"))) elif Event.query.filter((Event.start >= request.form["startDate"]) & (Event.end <= request.form["endDate"]) ).scalar() is not None: flash( "There is already an event scheduled for the requested dates." ) return redirect( url_for("customer_profile", username=session.get("logged_in"))) currCustomer = Customer.query.filter_by( username=session.get("logged_in")).first() s_split = request.form["startDate"].split("-") e_split = request.form["endDate"].split("-") start_date = datetime.date(int(s_split[0]), int(s_split[1]), int(s_split[2])) end_date = datetime.date(int(e_split[0]), int(e_split[1]), int(e_split[2])) # Add event for customer newEvent = Event(name=request.form["eventName"], start=start_date, end=end_date) currCustomer.events.append(newEvent) db.session.add(newEvent) newEvent.customer = currCustomer try: db.session.commit() flash("The event was successfully created.") return redirect( url_for("customer_profile", username=session.get("logged_in"))) except exc.SQLAlchemyError: flash("There was a problem scheduling the event.") return redirect( url_for("customer_profile", username=session.get("logged_in")))
def event_detail(obj_id): obj = Event.get(obj_id) if not obj: abort(404) return render_template('event_detail.html', obj=obj)
from models import Status, Service, Event from datetime import datetime, timedelta, date #foo = Service(name="Service Foo", slug="service-foo", # description="Scalable and reliable foo service across the globe") #foo.put() #bar = Service(name="Service Bar", slug="service-bar", description="Scalable and reliable foo service") #bar.put() #delete = Service(name="Delete Me", slug="delete", description="Delete Me Please") #delete.put() bar = Service.get_by_slug("bar") cat = Status.get_by_slug("down") dates = [ datetime(2010, 6, 5), datetime(2010, 6, 10), datetime(2010, 7, 16), datetime(2010, 7, 17), datetime(2010, 7, 18, 7), ] for d in dates: e = Event(service=bar, status=cat, message="Error fine", start=d) e.put()
def event_list(): object_list = Event.find() return render_template('event_list.html', object_list=object_list)
from models import Event, Source from timeline.shared_sources import TRUMP_CORONAVIRUS_TIMELINE_INCREASINGLY_DAMNING, \ WASHINGTON_POST_WHAT_TRUMP_DID_IN_FEBRUARY Event( date="2020-02-10", title="Trump proposes 16 percent cut to CDC", description=""" The Trump budget this year included a 16 percent cut to the CDC. It appears his budget tries to cut the CDC budget basically every year. That he would still attempt to do so during the early signs of a pandemic is insane. """, people=["Trump"], sources=[ Source( title= "Trump budget cuts funding for health, science, environment agencies", publication="The Washington Post", published="2020-02-10", url= "https://www.washingtonpost.com/science/trump-budget-cuts-funding-for-health-science-environment-agencies/" "2020/02/10/9c8dd784-4c2d-11ea-b721-9f4cdc90bc1c_story.html", article_copy= "./sources/2020-02-10-washington-post-trump-budget-cuts-funding.pdf", ), ], ) Event( date="2020-02-10", title= "Trump says, 'I think the virus is going to be — it’s going to be fine.'",
from models import Event, Source Event( date="2020-04-17", title="Trump encourages protests against states deciding what to do on their own", description=""" After releasing formal guidelines that say states get to decide on their own when to open, Trump's next logical step was then to encourage protests of states doing exactly that. He doesn't want the blame for opening states early, nor does he want the blame for the economy if it's still on the rocks in November, so the best he can do is complain but not do anything. He tweeted, "LIBERATE VIRGINIA, and save your great 2nd Amendment. It is under siege!", "LIBERATE MINNESOTA!", and "LIBERATE MICHIGAN!" while small protests took place in each of those states against stay at home orders. It will not surprise you to learn that those three states all have Democratic governors. """, people=["Trump"], sources=[ Source( title="Trump Encourages Protest Against Governors Who Have Imposed Virus Restrictions", publication="The New York Times", published="2020-04-17", url="https://www.nytimes.com/2020/04/17/us/politics/trump-coronavirus-governors.html", article_copy="sources/2020-04-17-new-york-times-trump-tweets-to-liberate-states.pdf", ), ], ) Event( date="2020-04-17", title="Trump commencement will force 1,000 West Point cadets back to New York", description="""
from models import Event, Source Event( date="2020-03-12", title="Trump adds Jared Kushner to the Coronavirus response team", description=""" From the attached article, "Kushner was initially tapped to join the coronavirus response by Trump on March 12, when he moved quickly to address the testing shortfalls and pulled in allies with a track record of launching health care companies." """, people=["Trump", "Kushner"], sources=[ Source( title="Behind the scenes, Kushner takes charge of coronavirus response", publication="Politico", published="2020-04-01", url="https://www.politico.com/news/2020/04/01/jared-kushner-coronavirus-response-160553", article_copy="./sources/2020-04-01-politico-jared-kushner.pdf", ), ], )
def load_events(blob_name) -> List[Event]: try: text = service.download_blob(blob_name).readall() return [Event.from_json(e) for e in json.loads(text)] except ResourceNotFoundError: return None
def saveEventToDB(event_form, request): event = Event() event.category = models.CategoryOptions().get_category_by_id( int(event_form.cleaned_data['category'])) event.budget = event_form.cleaned_data['budget'] event.date = event_form.cleaned_data['date'] event.description = event_form.cleaned_data['description'] event.is_kosher = event_form.cleaned_data['is_kosher'] event.is_vegan = event_form.cleaned_data['is_vegan'] event.is_vegeterian = event_form.cleaned_data['is_vegeterian'] event.picture = event_form.cleaned_data['picture'] event.location = event_form.cleaned_data['location'] event.city = event_form.cleaned_data['city'] event.max_people = event_form.cleaned_data['max_people'] event.name = event_form.cleaned_data['name'] event.organizer_id = request.user.id user = models.KitchenUser.objects.get(id=request.user.id) event.save() participant = models.EventParticipant(event = event, user = user, \ rsvp = models.RsvpOptions().get_rsvp_by_id(int(event_form.cleaned_data['rsvp']))) participant.save() return event.id
def create_event(): ''' API Endpoint to create an event for a host. Sent via POST request. Uses WTForm validation to validate event data. Input: N/A, Endpoint decorator Effects: Inserts Event row (upon success) Returns: - Page redirection [upon success] - Flask response object (JSON load), HTTP response code [upon failure] ''' form = NewEventForm(request.form) # Form submission from the user if request.method == 'POST' or request.method == 'PUT': if form.validate(): # WTForm validation eprint("Form successfully validated") name = form.eventNameInput.data host = form.eventHostInput.data theme = form.eventThemeInput.data description = form.eventDescriptionInput.data time_start = form.eventStartTimeEntry.data time_end = form.eventEndTimeEntry.data street = form.eventAddressInput.data city = form.eventCityInput.data state = form.eventStateInput.data zipcode = form.eventZipInput.data address = "{}, {}, {} {}".format(street, city, state, zipcode) eprint("POST address: " + address) geo_tuple = geocode( address) # GMS Geocoding using the form address eprint(geo_tuple) # Creating a geometric point which can be displayed on google maps lat = geo_tuple[0] lng = geo_tuple[1] new_event = Event(name=name, geo='POINT({} {})'.format(lat, lng), lat=lat, lng=lng, address=address, host=host, theme=theme, description=description, time_start=time_start, time_end=time_end) # Inserting event into the database db.session.add(new_event) db.session.commit() response = jsonify({'message': 'validation/upload success'}) response.status_code = 200 return redirect('/') # Form validation failure, return JSON response else: eprint(form.errors) response = jsonify({'validation failed': form.errors}) response.status_code = 400 return response
def setUp(self): self.event = Event(active=True, start_date=date(2011, 8, 1), address='bahnhofstrasse 1, 8001 zurich') self.event.save() self.factory = RequestFactory()
def main(): # simultaneous crawlers n_threads = 6 # load tokenizer tokenizer = Tokenizer() # load news account IDs news_accounts = settings['news_accounts'] # load api api = get_api(keys[0]) session = SessionPool().get_session() # for every hour: # Get headline tweets published from one hour ago headlines = [] one_hour_before = datetime.utcnow() - timedelta(hours=1) with closing(get_saver(session)) as saver: saver.send(None) for screen_name in news_accounts: news_sources_tweets = get_latest_tweets(screen_name, one_hour_before, api) if not news_sources_tweets: continue for tweet in news_sources_tweets: text = tweet.text if is_retweet(tweet): text = tweet.retweeted_status.text headlines.append(text) saver.send(tweet_tuple(tweet=tweet, is_headline=True, event_id=None)) headlines_preprocessed = [] for headline in headlines: doc = set() for term in tokenizer.tokenize(headline): term = ' '.join([t.lower_ for t in term]) doc.add(term) headlines_preprocessed.append(doc) keywords = detect_keywords(headlines_preprocessed, threshold=2) events = [] keyword_sets = [] with session.begin(): # take n_threads first keyword sets (top score first) # for each keyword set, take first 3 keywords (random order) for kwd in keywords[:n_threads]: tmp = list(kwd[0])[:3] event = Event(keyword1=tmp[0], keyword2=tmp[1], keyword3=tmp[2] if len(tmp) == 3 else None) session.add(event) events.append(event) keyword_sets.append(' '.join(tmp)) for event in events: session.refresh(event) keyword_sets = list(zip(keyword_sets, map(lambda x: x.id, events))) # collect tweet sets per keyword set for 1 hour total_time = 1 * hour logger.info(f"Collecting tweets for {total_time / 60} minutes.") collect_tweets(keyword_sets, limit=total_time) return keywords, headlines
from models import Event, Source from timeline.shared_sources import ECDC_CASES_AND_DEATHS_BY_COUNTRY Event( date="2020-03-05", title="US passes 10 deaths", description=""" US has 11 deaths and 159 cases in total. """, sources=[ECDC_CASES_AND_DEATHS_BY_COUNTRY], ) Event( date="2020-03-05", title="Pence says we do not have enough tests to meet demand", description=""" His exact quote is, “We don’t have enough tests today to meet what we anticipate will be the demand going forward.” """, people=["Pence"], sources=[ Source( title="Vice President Mike Pence praises 3M on coronavirus tour", publication="Minnesota Star Tribune", published="2020-03-05", url= "https://www.startribune.com/vice-president-mike-pence-visits-3m-on-coronavirus-tour/568524912/", article_copy="sources/2020-03-05-star-tribune-pence-3m-tour.pdf", ), ], )
def event(request, event_id=None): # Create Event if request.method == "POST" and event_id is None: try: event = Event(**normalize_post(request.POST)) event.save() data = event.to_dict() publish("event", "new", data, tags=event.tag_list) return json_response(data) except IntegrityError as err: return json_response({"msg": str(err)}, "error", 400) except DatabaseError as err: return json_response({"msg": str(err)}, "error", 500) # Update Event if request.method == "PUT" and event_id is not None: try: event = Event.objects.get(pk=event_id) event.update(request.read()) event.save() data = event.to_dict() publish("event", "update", data, tags=event.tag_list) return json_response(data) except Event.DoesNotExist as err: return json_response({"msg": str(err)}, "error", 404) # View Events if request.method == "GET" and event_id is None: offset = int(request.GET.get("offset", 0)) limit = int(request.GET.get("limit", 50)) events = Event.objects.order_by("-start") count = events.count() events = events[offset:limit] return json_response({ "events": [event.to_dict() for event in events], "total": count, }) # View Event if request.method == "GET" and event_id: event = Event.objects.get(pk=event_id) return json_response(event.to_dict()) return json_response({"msg": "Invalid Request."}, "error", 400)