コード例 #1
0
ファイル: views.py プロジェクト: pgulley/calendar_demo
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),
                             )
コード例 #2
0
    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()
コード例 #3
0
ファイル: sheet.py プロジェクト: DeprecatedCode/yearplan
 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
コード例 #4
0
ファイル: main.py プロジェクト: deanmao/hd-events
    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())
コード例 #5
0
ファイル: test_api.py プロジェクト: hackerdojo/hd-events
  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)
コード例 #6
0
ファイル: EventController.py プロジェクト: CICISUN/ConnectMe
 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)
コード例 #7
0
ファイル: views.py プロジェクト: m6394g/pyramid
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}
コード例 #8
0
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')
コード例 #9
0
ファイル: forms.py プロジェクト: datacommunitydc/eventgrinder
    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
コード例 #10
0
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()
コード例 #11
0
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()
コード例 #12
0
ファイル: urls.py プロジェクト: javicg/codeforlife-portal
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
            )
コード例 #13
0
ファイル: main.py プロジェクト: jonhull/hd-events
    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())
コード例 #14
0
ファイル: routes.py プロジェクト: bbenne10/atlsinfonia
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
コード例 #15
0
ファイル: views.py プロジェクト: pgwt/COC
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})
コード例 #16
0
ファイル: tests.py プロジェクト: tovmeod/anaf
    def test_model_event(self):
        """Test Event model"""
        event = Event(name="Test", end=datetime.now())
        event.save()
        self.assertNotEquals(event.id, None)

        event.delete()
コード例 #17
0
ファイル: views.py プロジェクト: neuaer/python-example
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")
コード例 #18
0
ファイル: forms.py プロジェクト: adreyer/arkestrator
 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
コード例 #19
0
ファイル: main.py プロジェクト: ridnarong/flasky
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"
コード例 #20
0
ファイル: views.py プロジェクト: PauloDuarte43/tomada-social
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))
コード例 #21
0
ファイル: views.py プロジェクト: jrm2k6/EventMailer
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))
コード例 #22
0
ファイル: views.py プロジェクト: LauraArteaga/2015-sat-final
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")
コード例 #23
0
ファイル: views.py プロジェクト: meyilmaz/rsvplus
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)
コード例 #24
0
ファイル: prodtool.py プロジェクト: OnePaaS/docker-status
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()
コード例 #25
0
 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)
コード例 #26
0
ファイル: main.py プロジェクト: stighackvan/hd-events
 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()))
コード例 #27
0
ファイル: notice.py プロジェクト: nyddle/Discourse
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
コード例 #28
0
ファイル: tests.py プロジェクト: joshdrake/django-extra-views
    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)
コード例 #29
0
 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
コード例 #30
0
    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?!")

        
コード例 #31
0
    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()
コード例 #32
0
ファイル: ftcdata.py プロジェクト: guineawheek/ftcdata
    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)
コード例 #33
0
 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}))
コード例 #34
0
ファイル: scrape.py プロジェクト: samkohn/free-food-columbia
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"
コード例 #35
0
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,
    ],
)
コード例 #36
0
ファイル: catering.py プロジェクト: kpucci/web_design
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)
コード例 #37
0
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)
コード例 #38
0
ファイル: fixtures.py プロジェクト: hamusutasonic/FSND
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()
コード例 #39
0
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,
    ],
)
コード例 #40
0
    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()
コード例 #41
0
    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="""
コード例 #42
0
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",
        ),
    ],
)
コード例 #43
0
    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()
コード例 #44
0
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)
コード例 #45
0
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",
        ),
    ],
)
コード例 #46
0
def map_heatmap():
    events = Event.find()
    return render_template('map_heatmap.html', events=events)
コード例 #47
0
ファイル: catering.py プロジェクト: kpucci/web_design
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")))
コード例 #48
0
def event_detail(obj_id):
    obj = Event.get(obj_id)
    if not obj:
        abort(404)
    return render_template('event_detail.html', obj=obj)
コード例 #49
0
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()


コード例 #50
0
def event_list():
    object_list = Event.find()
    return render_template('event_list.html', object_list=object_list)
コード例 #51
0
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.'",
コード例 #52
0
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="""
コード例 #53
0
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",
    ),
  ],
)
コード例 #54
0
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
コード例 #55
0
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
コード例 #56
0
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
コード例 #57
0
ファイル: tests.py プロジェクト: feincms/feincms-agenda
 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()
コード例 #58
0
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
コード例 #59
0
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",
        ),
    ],
)
コード例 #60
0
ファイル: views.py プロジェクト: gmjosack/auditor
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)