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()
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})
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()