예제 #1
0
def add_csv(request, event_id):
	event = get_object_or_404(Event, id=event_id)

	if request.method == 'POST':
		form = AddMediaObjectCSVForm(request. POST, request.FILES)

		if form.is_valid():
			dataReader = csv.reader(request.FILES['csv_file'], delimiter=';')

			media_objects = []

			for row in dataReader:
				media_object = MediaObject()
				media_object.datetime = row[0]
				media_object.name = row[1]
				media_object.url = row[2]
				media_object.author = row[3]
				media_object.event = event
				media_object.save()

				media_objects.append(media_object)

			messages.success(request, 'Imported %d new media objects' % len(media_objects))
			return redirect('media_list', event_id=event.id)
	else:
		form = AddMediaObjectCSVForm()

	data = {
		'event': event,
		'form': form,
	}

	return render(request, 'media_objects/add_csv.html', data)
예제 #2
0
def add_rss(request, event_id):
	event = get_object_or_404(Event, id=event_id)

	if request.method == 'POST':
		form = AddMediaObjectRSSForm(request. POST, request.FILES)

		if form.is_valid():
			if form.cleaned_data['url']:
				feed = feedparser.parse(form.cleaned_data['url'])
			elif form.cleaned_data['_file']:
				feed = feedparser.parse(form.cleaned_data['_file'])

			media_objects = []

			for entry in feed.entries:
				date_published = dateutil.parser.parse(entry.published)
				media_object = MediaObject(
					datetime=(date_published - date_published.utcoffset()).replace(tzinfo=None),
					name=entry.title,
					url=entry.link,
					author=entry.author)
				media_object.event = event
				#media_object.save()
				media_objects.append(media_object)

			messages.success(request, 'Imported %d new media objects' % len(media_objects))
			if request.is_ajax:
				response = {'media_objects': media_objects}
				response_json = simplejson.dumps(response, ensure_ascii=False, cls=ModelAwareJSONEncoder)
				return HttpResponse(response_json, mimetype='application/json')

			else:
				return redirect('media_list', event_id=event.id)
		elif request.is_ajax():
			# So the form is invalid, and was submitted with AJAX. Respond with a JSON
			# list of the errors
			response = {'errors': dict(form.errors.iteritems())}
			response_json = simplejson.dumps(response, ensure_ascii=False)
			return HttpResponse(response_json, mimetype='application/json')
	else:
		form = AddMediaObjectRSSForm()

	data = {
		'event': event,
		'form': form,
	}

	return render(request, 'media_objects/add_rss.html', data)