def add_post(req, key): if req.method == 'POST': # If the form has been submitted... form = Bookmarklet(req.POST) # A form bound to the POST data s = OASession.objects.get(key=key) slug = req.POST.get('slug', '') if form.is_valid(): # All validation rules pass evt_dict = dict(form.cleaned_data) try: lat, lng = evt_dict['coords'].split(',') except: lat, lng = 0, 0 evt_dict['coords'] = {'lat': float(lat), 'lng': float(lng)} if evt_dict['accessed'] != '': evt_dict['accessed'] = dateutil.parser.parse( evt_dict['accessed']) else: evt_dict['accessed'] = datetime.datetime.now() user = OAUser.objects.get(slug=evt_dict['slug']) evt_dict['user_email'] = user.email evt_dict['user_name'] = user.name evt_dict['user_profession'] = user.profession evt_dict['user_slug'] = user.slug del evt_dict['slug'] event = OAEvent.objects.create(**evt_dict) event.save() scholar_url = '' if 'doi' in evt_dict: # Some dumb DOIs end with '.' characters while evt_dict['doi'].endswith('.'): evt_dict['doi'] = evt_dict['doi'][:-1] doi = evt_dict['doi'] scholar_url = 'http://scholar.google.com/scholar?cluster=http://dx.doi.org/%s' % doi s.data = json.dumps({ 'event_id': event.id, 'scholar_url': scholar_url, 'doi': doi }) s.save() return redirect('bookmarklet:form2', key=key, slug=user.slug) else: return redirect('bookmarklet:form1', slug=slug) return redirect('homepage')
def add_post(req, key): if req.method == 'POST': # If the form has been submitted... form = Bookmarklet(req.POST) # A form bound to the POST data s = OASession.objects.get(key=key) slug = req.POST.get('slug', '') if form.is_valid(): # All validation rules pass evt_dict = dict(form.cleaned_data) try: lat, lng = evt_dict['coords'].split(',') except: lat, lng = 0, 0 evt_dict['coords'] = {'lat': float(lat), 'lng': float(lng)} if evt_dict['accessed'] != '': evt_dict['accessed'] = dateutil.parser.parse(evt_dict['accessed']) else: evt_dict['accessed'] = datetime.datetime.now() user = OAUser.objects.get(slug=evt_dict['slug']) evt_dict['user_email'] = user.email evt_dict['user_name'] = user.name evt_dict['user_profession'] = user.profession evt_dict['user_slug'] = user.slug del evt_dict['slug'] event = OAEvent.objects.create(**evt_dict) event.save() scholar_url = '' if 'doi' in evt_dict: # Some dumb DOIs end with '.' characters while evt_dict['doi'].endswith('.'): evt_dict['doi'] = evt_dict['doi'][:-1] doi = evt_dict['doi'] scholar_url = 'http://scholar.google.com/scholar?cluster=http://dx.doi.org/%s' % doi session_data = json.loads(s.data) session_data.update({'event_id': event.id, 'scholar_url': scholar_url, 'doi': doi}) s.data = json.dumps(session_data) s.save() return redirect('bookmarklet:form2', key=key, slug=user.slug) else: return redirect('bookmarklet:form1', slug=slug) return redirect('homepage')
def form1(req, slug): """ Show the bookmarklet form """ # For some reason, we get a trailing slash sometimes. No idea # why. while slug.endswith('/'): slug = slug[:-1] if OAUser.objects.filter(slug=slug).count() == 0: return render_to_response('bookmarklet/no_user.html') form = Bookmarklet(req.GET) if 'doi' in form.data: form.fields['doi'].widget.attrs['readonly'] = 'readonly' form.fields['doi'].widget.attrs['value'] = form.data['doi'] if 'url' in form.data: form.fields['url'].widget.attrs['value'] = form.data['url'] form.fields['slug'].widget.attrs['value'] = slug c = {} key = uuid.uuid4().hex s = OASession.objects.create(key=key, expire=time.time()) s.save() c.update({'bookmarklet': form, 'slug': slug, 'key': key}) return render_to_response('bookmarklet/page1.html', c, context_instance=RequestContext(req))
def add_post(req): c = {} c.update(csrf(req)) if req.method == 'POST': # If the form has been submitted... form = Bookmarklet(req.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass evt_dict = dict(form.cleaned_data) lat, lng = evt_dict['coords'].split(',') evt_dict['coords'] = {'lat': float(lat), 'lng': float(lng)} if evt_dict['accessed'] != '': evt_dict['accessed'] = dateutil.parser.parse(evt_dict['accessed']) user = User.objects.get(id=evt_dict['user_id']) evt_dict['user_name'] = user.name evt_dict['user_profession'] = user.profession event = Event(**evt_dict) event.save() scholar_url = '' if 'doi' in evt_dict: # Some dumb DOIs end with '.' characters while evt_dict['doi'].endswith('.'): evt_dict['doi'] = evt_dict['doi'][:-1] doi = evt_dict['doi'] scholar_url = 'http://scholar.google.com/scholar?cluster=http://dx.doi.org/%s' % doi req.session['data'] = {'event_id': event.id, 'scholar_url': scholar_url, 'doi': doi} return redirect('bookmarklet:form2') else: return redirect('bookmarklet:form1', user_id=req.session['user_id'])