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