Beispiel #1
0
def sayhello(request):
    #return simplejson.dumps({'message':'Hello World'})
    resp = requests.get("http://etcweb.princeton.edu/MobileFeed/events/?fmt=json")
    json_obj = resp.json()
    events = json_obj['events']
    
    for event in events:
	   name = event['title']
	   building = event['locationName']
	   latitude = event['latitude']
	   longitude = event['longitude']
	   startDate = event['startDate']
	   startTime = event['startTime']

	   # format date
	   date = datetime.datetime.strptime(startDate['0'], "%Y-%m-%d").date()

	   parts = startTime.split()

       # format time
	   time = datetime.datetime.strptime(parts[0], "%H:%M:%S %z").time()

       # make into tags
	   categories = event['categories']

	   new_event = NewEvent(name=name, date=date, time=time, location=building, lat=latitude, lon=longitude)
	   new_event.save()
Beispiel #2
0
def add(request):
	if request.user.username == "":
		return HttpResponse('Please sign in!', status=401)		
	if request.method == 'POST':
		username = request.user.username
		this_user = MyUser.objects.get(username = username)
		form = NewEventForm(request.POST) 
		if form.is_valid():
			data = form.cleaned_data
			data['startTime'] = datetime.strptime(
				data['startTime'], "%Y-%m-%d %H:%M")
			data['endTime'] = datetime.strptime(
				data['endTime'], "%Y-%m-%d %H:%M")
			
			buildingAlias = BuildingAlias.objects.filter(alias=data['location'])
			latitude = None
			longitude = None
			if (buildingAlias):
				building = buildingAlias[0].building
				latitude = building.lat
				longitude = building.lon
			event = NewEvent(name = data['name'],
					 startTime = data['startTime'],
					 endTime = data['endTime'],
					 location = data['location'],
					 lat = latitude,
					 lon = longitude,
					 private = data['private'],
					 creator = this_user,
					 description = data['description'])
							#creator = this_user)
			
			event.save() #must save before adding groups
			# new tagging method
			tag_list = [Tag.objects.get_or_create(name=tag)[0] for tag in data['tags'].split()],
			for tag in tag_list:
				event.tags.add(*tag)
			#	event.tags.add(tag)
			# group stuff
			for group in data['groups']:
				event.groups.add(group)
			event.save() 
			#if data['name'] != "swag":
			#	raise ValidationError("no swag")
			return render(request, 'frontend/success.html',
				      {'event': event})			

	else:
		form = NewEvent()
	events_list = NewEvent.objects.all().order_by("startTime") # this is to refresh the events list without page refresh.
	return render(request, '/frontend/map.html', {'form': form})
Beispiel #3
0
    def addEvent(self, uri, event, calendarName):
        e = event

        f_title = e.find(self.xml_tag(uri, 'title')).text
        #f_locationID = e.find(self.xml_tag(uri, 'locationID')).text
        f_locationName = e.find(self.xml_tag(uri, 'locationName')).text
        f_startDate = e.find(self.xml_tag(uri, 'startDate')).text
        f_startTime = e.find(self.xml_tag(uri, 'startTime')).text
        f_endDate = e.find(self.xml_tag(uri, 'endDate')).text
        f_endTime = e.find(self.xml_tag(uri, 'endTime')).text

        #f_description = event['description']
        #f_audience = event['audience']
        #f_tags = event['categories']['categoryName']

        # start date, time
        f_sDate = f_startDate.split()[0]
        sDate = datetime.datetime.strptime(f_sDate, "%Y-%m-%d").date()
        f_sTime = f_startTime.split()[0]
        sTime = datetime.datetime.strptime(f_sTime, "%H:%M:%S").time()
        startDateTime = datetime.datetime.combine(sDate, sTime)

        # end date, time
        f_eDate = f_endDate.split()[0]
        eDate = datetime.datetime.strptime(f_eDate, "%Y-%m-%d").date()
        f_eTime = f_endTime.split()[0]
        eTime = datetime.datetime.strptime(f_eTime, "%H:%M:%S").time()
        endDateTime = datetime.datetime.combine(eDate, eTime)

        # make into tags
        #categories = event['categories']

        # search database for existing event; add if nonexistent
        f_event = NewEvent.objects.filter(name=f_title, location=f_locationName,
                                          startTime=startDateTime)
        
        if (len(f_event) > 0):
            return

        else:
            f_description = e.find(self.xml_tag(uri, 'description')).text
            f_categories = e.find(self.xml_tag(uri, 'categories')).text

            try:
                f_latitude = e.find(self.xml_tag(uri, 'latitude')).text
                f_longitude = e.find(self.xml_tag(uri, 'longitude')).text
            except:
                f_latitude = None
                f_longitude = None

            coordinates = self.getCoordinates(f_locationName)
            print coordinates

            if (coordinates != False):
                f_latitude = coordinates[0]
                f_longitude = coordinates[1]

            new_event = NewEvent(name=f_title, startTime=startDateTime, 
                                 endTime=endDateTime, location=f_locationName, 
                                 lat=f_latitude, lon=f_longitude,
                                 description = f_description)
            new_event.save()
            tag_list = Tag.objects.get_or_create(name=calendarName)[0]
            new_event.tags.add(tag_list)
            new_event.save()