def curation_detail(request, object_id, index=None, template_name='depot/curation_detail.html'): """docstring for curation_detail""" if index: resource = get_one_or_404(Resource, id=ObjectId(object_id)) curation = resource.curations[int(index)] else: curation = get_one_or_404(Curation, id=ObjectId(object_id)) resource = curation.resource if request.is_ajax(): context = { 'curation': { 'note': curation.note, 'tags': curation.tags, }, 'resource': { 'title': resource.title, 'description': resource.description, }, 'url': reverse('curation_add', args=(resource.id, )), } return HttpResponse(json.dumps(context), mimetype='application/json') context = { 'index': index, 'object': curation, 'resource': resource, } return render_to_response(template_name, RequestContext(request, context))
def resource_remove(request, object_id): object = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_delete') object.delete() user = get_account(request.user.id) increment_resource_crud('resouce_remove', account=user) return HttpResponseRedirect(reverse('resource_list'))
def edit(request, object_id, template_name='accounts/accounts_edit.html', next='accounts_detail'): # object = get_one_or_404(Account, id=object_id) object = get_one_or_404(Account, id=ObjectId(object_id), user=request.user, perm='can_edit') user = request.user if not (user.is_staff or object.local_id == str(user.id)): raise PermissionDenied() if request.method == 'POST': form = AccountForm(request.POST, instance=object) locationform = LocationUpdateForm(request.POST, instance=object) if form.is_valid(request.user) and locationform.is_valid(): acct = get_account(request.user.id) object.locations = locationform.locations object.save() increment_resource_crud('account_edit', account=acct) object = form.save(False) object.save(reindex=True) return HttpResponseRedirect(reverse(next, args=[object.id])) else: form = AccountForm(instance=object) locationform = LocationUpdateForm(instance=object) template_context = { 'form': form, 'object': object, 'locationform': locationform, 'new': False } return render_to_response( template_name, template_context, RequestContext(request) )
def detail(request, object_id, template_name='accounts/accounts_detail.html', next=None): account = get_one_or_404(Account, id=object_id) user = request.user pt_results = {} centres = None # if account.locations: # centres = [{'name': unicode(account.locations[0]), 'location': (account.locations[0].lat_lon) }] centres = [{'name': unicode(loc), 'location': (loc.lat_lon) } for loc in account.locations] # curations = Curation.objects(owner=account).order_by('-item_metadata__last_modified')[:40] curations = get_pages(request, Curation.objects(owner=account).order_by('-item_metadata__last_modified'), 20) # map has all curations for curation in Curation.objects(owner=account): for loc in curation.resource.locations: pt_results.setdefault(tuple(loc.lat_lon), []).append((curation.resource.id, curation.resource.title)) context = { 'curations': curations, 'curations_count': Curation.objects(owner=account).count(), 'pt_results': pt_results, 'centres': centres, 'google_key': settings.GOOGLE_KEY, 'show_map': centres or pt_results, 'next': next or '%s?page=%s' % (reverse('accounts_detail', args=[account.id]), curations.number) } return render_to_response( template_name, {'object': account}, RequestContext(request, context) )
def location_remove(request, object_id, index): """docstring for location_remove""" resource = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_edit') del resource.locations[int(index)] resource.save(author=get_account(request.user.id), reindex=True) return HttpResponseRedirect(reverse('resource_edit', args=[resource.id]))
def curations_for_group_html(request, object_id, template_name='depot/curations_for_group_embed.html'): object = get_one_or_404(Account, id=ObjectId(object_id)) curations = [c.resource for c in Curation.objects(owner=object).order_by('-item_metadata__last_modified')[:10]] template_context = {'object': object, 'curations': curations} return render_to_response( template_name, template_context, RequestContext(request) )
def resource_find(request, template_name='depot/resource_find.html'): """docstring for resource_find""" results = [] pt_results = {} centres = None new_search = False result = request.REQUEST.get('result', '') if request.method == 'POST' or result: if result == 'Cancel': return HttpResponseRedirect(reverse('resource_list')) form = FindResourceForm(request.REQUEST) if form.is_valid(): user = get_account(request.user.id) # print request.META.get("ENGINE_LOG") increment_queries(form.cleaned_data['kwords'], account=user) # print form.centre['loc'] if form.centre else None increment_locations( unicode(form.centre['loc']) if form.centre else None, account=user) for result in form.results: resource = get_one_or_404(Resource, id=ObjectId(result['res_id'])) result['resource'] = resource if 'pt_location' in result: pt_results.setdefault( tuple(result['pt_location'][0].split(', ')), []).append((result['res_id'], result['title'])) centres = [form.centre] if form.centre else [] else: form = FindResourceForm( initial={'boost_location': settings.SOLR_LOC_BOOST_DEFAULT}) new_search = True # hack cos map not showing if no centre point # map should show if pt_results anyway, but not happening # see also accounts.view.accounts_find # just north of Perth # default_centres = [{'location': ('56.5', '-3.5')}] context = { 'next': urlquote_plus(request.get_full_path()), 'form': form, 'results': form.results, 'pt_results': pt_results, 'centres': centres, # or default_centres if pt_results else None, 'google_key': settings.GOOGLE_KEY, 'show_map': bool(centres or pt_results), 'new_search': new_search } return render_to_response(template_name, RequestContext(request, context))
def issue_detail(request, object_id, template_name='youraliss/issue_detail.html', next='issue_detail'): account = get_account(request.user.id) issue = get_one_or_404(Issue, id=ObjectId(object_id)) if request.method == 'POST' and 'message' in request.POST: commentform = CommentForm(request.POST) if commentform.is_valid(): comment = IssueComment( owner=account, message=commentform.cleaned_data['message'], ) issue.comments.append(comment) issue.save() issue.notify_comment(comment) return HttpResponseRedirect(reverse(next, args=[issue.id])) else: commentform = CommentForm() if request.method == 'POST' and 'resolved' in request.POST: if not can_resolve(account, issue): raise PermissionDenied() form = IssueResolveForm(request.POST) if form.is_valid(): issue.resolved = int(form.cleaned_data['resolved']) issue.resolved_message = form.cleaned_data['resolved_message'] issue.save() if issue.resolved == RESOLUTION_FOR_REMOVAL: issue.related_document.moderate_as_bad(account) elif issue.severity == SEVERITY_CRITICAL: issue.related_document.remove_bad_mod() issue.notify_resolved() return HttpResponseRedirect(reverse(next, args=[issue.id])) else: form = IssueResolveForm(initial={ 'resolved': issue.resolved, 'resolved_message': issue.resolved_message }) template_context = { 'object': issue, 'commentform': commentform, 'form': form } return render_to_response(template_name, RequestContext(request, template_context))
def curations_for_group_js(request, object_id, template_name='depot/curations_for_group_embed.js'): object = get_one_or_404(Account, id=ObjectId(object_id)) curations = [c.resource for c in Curation.objects(owner=object).order_by('-item_metadata__last_modified')[:10]] base_url = Site.objects.get_current().domain print base_url template_context = Context( {'object': object, 'curations': curations, 'base_url': 'http://%s' % base_url}) response = HttpResponse(mimetype='text/javascript') t = loader.get_template(template_name) response.write(t.render(template_context)) return response
def resource_detail(request, object_id, template_name='depot/resource_detail.html'): object = get_one_or_404(Resource, id=ObjectId(object_id)) increment_resources(object_id) return render_to_response( template_name, RequestContext( request, { 'object': object, 'yahoo_appid': settings.YAHOO_KEY, 'google_key': settings.GOOGLE_KEY }))
def resource_edit(request, object_id, template_name='depot/resource_edit.html'): """ edits an existing resource. Uses a wizard-like approach, so checks resource.collection_status and hands off to resource_* function handler """ UPDATE_LOCS = 'Update locations' UPDATE_TAGS = 'Update tags' object = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_edit') # doc = '' # places = None template_info = _template_info(request.REQUEST.get('popup', '')) if request.method == 'POST': result = request.POST.get('result', '') # or request.POST.get('result', '') if result == 'Cancel': return resource_edit_complete(request, object, template_info) resourceform = ShortResourceForm(request.POST, instance=object) eventform = EventForm(request.POST, instance=object.calendar_event) locationform = LocationUpdateForm(request.POST, instance=object) # shelflifeform = ShelflifeForm(request.POST, instance=object) if resourceform.is_valid(request.user) and locationform.is_valid() and eventform.is_valid(): acct = get_account(request.user.id) object.locations = locationform.locations increment_resource_crud('resouce_edit', account=acct) # Event dates event_start = eventform.cleaned_data['start'] if event_start: object.calendar_event = CalendarEvent(start=event_start, end=eventform.cleaned_data['end']) else: object.calendar_event = None object = resourceform.save(do_save=False) try: object.save(author=acct, reindex=True) return resource_edit_complete(request, object, template_info) except OperationError: pass else: resourceform = ShortResourceForm(instance=object) locationform = LocationUpdateForm(instance=object) eventform = EventForm(instance=object.calendar_event) # shelflifeform = ShelflifeForm(instance=object) return render_to_response(template_name, RequestContext( request, { 'template_info': template_info, 'object': object, 'resourceform': resourceform, 'locationform': locationform, 'eventform': eventform, #'places': places, # 'tagsform': tagsform, #'shelflifeform': shelflifeform, 'UPDATE_LOCS': UPDATE_LOCS, 'UPDATE_TAGS': UPDATE_TAGS }))
def curations_for_group_html( request, object_id, template_name='depot/curations_for_group_embed.html'): object = get_one_or_404(Account, id=ObjectId(object_id)) curations = [ c.resource for c in Curation.objects( owner=object).order_by('-item_metadata__last_modified')[:10] ] template_context = {'object': object, 'curations': curations} return render_to_response(template_name, template_context, RequestContext(request))
def curation_add(request, object_id, template_name='depot/curation_edit.html'): """docstring for curation_add""" resource = get_one_or_404(Resource, id=ObjectId(object_id)) user = get_account(request.user.id) curation = get_curation_for_acct_resource(user, resource) if curation: index, cur = curation messages.warning( request, 'You already have a curation for this resource- you can edit it if you need to make changes.' ) return HttpResponseRedirect( reverse('curation', args=[resource.id, index])) if request.method == 'POST': result = request.POST.get('result', '') next = request.GET.get('next', '') if next: url = '%s#res_%s' % (next, resource.id) else: url = '' if result == 'Cancel': return HttpResponseRedirect( url or reverse('resource', args=[resource.id])) form = CurationForm(request.POST) if form.is_valid(request.user): curation = Curation(**form.cleaned_data) curation.owner = user curation.item_metadata.update(author=user) add_curation(resource, curation) # TODO: move this into resource.add_curation increment_resource_crud('curation_add', account=user) index = len(resource.curations) - 1 return HttpResponseRedirect( url or reverse('curation', args=[resource.id, index])) else: initial = {'outcome': STATUS_OK} form = CurationForm(initial=initial) template_context = { 'next': urlquote_plus(request.GET.get('next', '')), 'form': form, 'resource': resource, 'new': True } return render_to_response(template_name, template_context, RequestContext(request))
def curation_remove(request, object_id, index): """docstring for curation_remove""" user = get_account(request.user.id) resource = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_delete') if resource.owner == resource.curations[int(index)].owner: messages.warning(request, 'You cannot delete the curation by the resource owner.') return HttpResponseRedirect(reverse('curation', args=[resource.id, index])) resource.curations[int(index)].delete() del resource.curations[int(index)] resource.save(reindex=True) increment_resource_crud('curation_remove', account=user) return HttpResponseRedirect(reverse('resource', args=[resource.id]))
def accounts_find(request, template_name='accounts/accounts_find.html'): """docstring for accounts_find""" results = [] pt_results = {} centres = None new_search = False result = request.REQUEST.get('result', '') if request.method == 'POST' or result: pass if result == 'Cancel': return HttpResponseRedirect(reverse('resource_list')) form = FindAccountForm(request.REQUEST) if form.is_valid(): user = get_account(request.user.id) increment_queries(form.cleaned_data['kwords'], account=user) increment_locations(form.cleaned_data['post_code'], account=user) for result in form.results: acct = get_one_or_404(Account, id=ObjectId(result['res_id'])) result['resource'] = acct results.append({'resource_result': result}) if 'pt_location' in result: pt_results.setdefault(tuple(result['pt_location'][0].split(', ')), []).append((result['res_id'], result['title'])) centres = [form.centre] if form.centre else [] else: form = FindAccountForm(initial={'boost_location': settings.SOLR_LOC_BOOST_DEFAULT}) new_search = True # hack cos map not showing if no centre point # map should show if pt_results anyway, but not happening # see also resources.view.resource_find # just north of Perth # default_centres = [{'location': ('56.5', '-3.5')}] context = { 'next': urlquote_plus(request.get_full_path()), 'form': form, 'results': results, 'pt_results': pt_results, 'centres': centres, # or default_centres if pt_results else None, 'google_key': settings.GOOGLE_KEY, 'show_map': bool(centres or pt_results), 'new_search': new_search } return render_to_response(template_name, RequestContext(request, context))
def resource_report(request, object_id, template_name='depot/resource_report.html'): """ View for reporting a report when a user finds a problem with it. """ resource = get_one_or_404(Resource, id=ObjectId(object_id)) reporter = get_account(request.user.id) # if 'next' in request.GET: # url = request.GET['next'] # else: # url = None # url = url or reverse('resource', args=[resource.id]) if Issue.objects(reporter=reporter, related_document=resource).count(): messages.warning(request, 'You have already reported this resource.') return HttpResponseRedirect(reverse('resource', args=[resource.id])) if request.method == 'POST': form = ResourceReportForm(request.POST) if form.is_valid(): severity = int(form.cleaned_data['severity']) message = form.cleaned_data['message'] issue = Issue(message=message, severity=severity, reporter=reporter) issue.related_document = resource issue.save() issue.notify_created() # only moderate as STATUS_BAD if SEVERITY_CRITICAL if severity == SEVERITY_CRITICAL: resource.moderate_as_bad(reporter) return HttpResponseRedirect( reverse('issue_detail', args=[issue.id])) else: form = ResourceReportForm() return render_to_response( template_name, { 'next': urlquote_plus(request.GET.get('next', '')), 'form': form, 'object': resource, }, RequestContext(request))
def locations_remove(request, object_id): """docstring for location_remove""" object = get_one_or_404(Location, id=object_id, user=request.user, perm='can_delete') resources = Resource.objects(locations=object) accounts = Account.objects(locations=object) if resources or accounts: res_str = ','.join([res.name for res in resources]) acct_str = ','.join(['<a href="%s">%s</a>' % (reverse('accounts_edit', args=[acct.id]), acct.name) for acct in accounts]) messages.error( request, 'Resources/Accounts using this location:<br>%s<br>%s.' % (res_str, acct_str)) return HttpResponseRedirect(reverse('cab_locations_detail', args=[object.id])) object.delete() messages.success(request, 'Location removed') return HttpResponseRedirect(reverse('cab_locations'))
def curation_add(request, object_id, template_name='depot/curation_edit.html'): """docstring for curation_add""" resource = get_one_or_404(Resource, id=ObjectId(object_id)) user = get_account(request.user.id) curation = get_curation_for_acct_resource(user, resource) if curation: index, cur = curation messages.warning(request, 'You already have a curation for this resource- you can edit it if you need to make changes.') return HttpResponseRedirect(reverse('curation', args=[resource.id, index])) if request.method == 'POST': result = request.POST.get('result', '') next = request.GET.get('next', '') if next: url = '%s#res_%s' % (next, resource.id) else: url = '' if result == 'Cancel': return HttpResponseRedirect(url or reverse('resource', args=[resource.id])) form = CurationForm(request.POST) if form.is_valid(request.user): curation = Curation(**form.cleaned_data) curation.owner = user curation.item_metadata.update(author=user) add_curation(resource, curation) # TODO: move this into resource.add_curation increment_resource_crud('curation_add', account=user) index = len(resource.curations) - 1 return HttpResponseRedirect(url or reverse('curation', args=[resource.id, index])) else: initial = { 'outcome': STATUS_OK} form = CurationForm(initial=initial) template_context = { 'next': urlquote_plus(request.GET.get('next', '')), 'form': form, 'resource': resource, 'new': True } return render_to_response( template_name, template_context, RequestContext(request) )
def resource_report(request, object_id, template_name='depot/resource_report.html'): """ View for reporting a report when a user finds a problem with it. """ resource = get_one_or_404(Resource, id=ObjectId(object_id)) reporter=get_account(request.user.id) # if 'next' in request.GET: # url = request.GET['next'] # else: # url = None # url = url or reverse('resource', args=[resource.id]) if Issue.objects(reporter=reporter, related_document=resource).count(): messages.warning(request, 'You have already reported this resource.') return HttpResponseRedirect(reverse('resource', args=[resource.id])) if request.method == 'POST': form = ResourceReportForm(request.POST) if form.is_valid(): severity=int(form.cleaned_data['severity']) message=form.cleaned_data['message'] issue = Issue( message=message, severity=severity, reporter=reporter) issue.related_document = resource issue.save() issue.notify_created() # only moderate as STATUS_BAD if SEVERITY_CRITICAL if severity == SEVERITY_CRITICAL: resource.moderate_as_bad(reporter) return HttpResponseRedirect(reverse('issue_detail', args=[issue.id])) else: form = ResourceReportForm() return render_to_response(template_name, { 'next': urlquote_plus(request.GET.get('next', '')), 'form': form, 'object': resource, }, RequestContext(request))
def issue_detail(request, object_id, template_name='youraliss/issue_detail.html', next='issue_detail'): account = get_account(request.user.id) issue = get_one_or_404(Issue, id=ObjectId(object_id)) if request.method == 'POST' and 'message' in request.POST: commentform = CommentForm(request.POST) if commentform.is_valid(): comment = IssueComment( owner = account, message = commentform.cleaned_data['message'], ) issue.comments.append(comment) issue.save() issue.notify_comment(comment) return HttpResponseRedirect(reverse(next, args=[issue.id])) else: commentform = CommentForm() if request.method == 'POST' and 'resolved' in request.POST: if not can_resolve(account, issue): raise PermissionDenied() form = IssueResolveForm(request.POST) if form.is_valid(): issue.resolved=int(form.cleaned_data['resolved']) issue.resolved_message=form.cleaned_data['resolved_message'] issue.save() if issue.resolved == RESOLUTION_FOR_REMOVAL: issue.related_document.moderate_as_bad(account) elif issue.severity == SEVERITY_CRITICAL: issue.related_document.remove_bad_mod() issue.notify_resolved() return HttpResponseRedirect(reverse(next, args=[issue.id])) else: form = IssueResolveForm(initial={'resolved': issue.resolved, 'resolved_message': issue.resolved_message}) template_context = {'object': issue, 'commentform': commentform, 'form': form} return render_to_response(template_name, RequestContext(request, template_context))
def curation_remove(request, object_id, index): """docstring for curation_remove""" user = get_account(request.user.id) resource = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_delete') if resource.owner == resource.curations[int(index)].owner: messages.warning( request, 'You cannot delete the curation by the resource owner.') return HttpResponseRedirect( reverse('curation', args=[resource.id, index])) resource.curations[int(index)].delete() del resource.curations[int(index)] resource.save(reindex=True) increment_resource_crud('curation_remove', account=user) return HttpResponseRedirect(reverse('resource', args=[resource.id]))
def curation_edit(request, object_id, index, template_name='depot/curation_edit.html'): """Curation is an EmbeddedDocument, so can't be saved, needs to be edited, then Resource saved.""" resource = get_one_or_404(Resource, id=ObjectId(object_id)) object = resource.curations[int(index)] if not request.user.has_perm('can_edit', object): raise PermissionDenied() if request.method == 'POST': result = request.POST.get('result', '') if result == 'Cancel': return HttpResponseRedirect( reverse('curation', args=[resource.id, index])) form = CurationForm(request.POST, instance=object) if form.is_valid(request.user): user = get_account(request.user.id) curation = form.save(do_save=False) curation.item_metadata.update(author=user) curation.save() increment_resource_crud('curation_edit', account=user) # reload the resource, don't know why, but needed for mongoengine 0.6 resource = Resource.objects.get(id=resource.id) if curation.owner == resource.owner: resource.tags = list(set(curation.tags)) resource.save(reindex=True) return HttpResponseRedirect( reverse('curation', args=[resource.id, index])) else: form = CurationForm(instance=object) template_context = { 'form': form, 'object': object, 'resource': resource, 'new': False } return render_to_response(template_name, template_context, RequestContext(request))
def stories_detail(request, object_id, template_name='stories/stories_detail.html'): try: object = Curation.objects.get(pk=ObjectId(object_id)) obj_type = 'curation' except Curation.DoesNotExist: object = get_one_or_404(Account, id=ObjectId(object_id)) obj_type = 'account' except InvalidId: object = FlatPage.objects.get(pk=object_id) obj_type = 'flatpage' if request.method == 'POST': form = FileUploadForm(request.POST, request.FILES) if form.is_valid(): handle_uploaded_file(request.FILES['picture_file'], object.id) else: form = FileUploadForm(initial={'picture_file': 'blah/de/blah.jpg'}) template_context = {'object': get_story(object, obj_type), 'form': form} return render_to_response(template_name, RequestContext(request, template_context))
def curations_for_group_js(request, object_id, template_name='depot/curations_for_group_embed.js'): object = get_one_or_404(Account, id=ObjectId(object_id)) curations = [ c.resource for c in Curation.objects( owner=object).order_by('-item_metadata__last_modified')[:10] ] base_url = Site.objects.get_current().domain print base_url template_context = Context({ 'object': object, 'curations': curations, 'base_url': 'http://%s' % base_url }) response = HttpResponse(mimetype='text/javascript') t = loader.get_template(template_name) response.write(t.render(template_context)) return response
def curation_edit(request, object_id, index, template_name='depot/curation_edit.html'): """Curation is an EmbeddedDocument, so can't be saved, needs to be edited, then Resource saved.""" resource = get_one_or_404(Resource, id=ObjectId(object_id)) object = resource.curations[int(index)] if not request.user.has_perm('can_edit', object): raise PermissionDenied() if request.method == 'POST': result = request.POST.get('result', '') if result == 'Cancel': return HttpResponseRedirect(reverse('curation', args=[resource.id, index])) form = CurationForm(request.POST, instance=object) if form.is_valid(request.user): user = get_account(request.user.id) curation = form.save(do_save=False) curation.item_metadata.update(author=user) curation.save() increment_resource_crud('curation_edit', account=user) # reload the resource, don't know why, but needed for mongoengine 0.6 resource = Resource.objects.get(id=resource.id) if curation.owner == resource.owner: resource.tags = list(set(curation.tags)) resource.save(reindex=True) return HttpResponseRedirect(reverse('curation', args=[resource.id, index])) else: form = CurationForm(instance=object) template_context = { 'form': form, 'object': object, 'resource': resource, 'new': False } return render_to_response( template_name, template_context, RequestContext(request) )
def remove(request, object_id, template_name='ecutils/confirm.html'): """docstring for delete""" object = get_one_or_404(Account, id=ObjectId(object_id), user=request.user, perm='can_delete') user = request.user if not (user.is_staff or object.local_id == str(user.id)): raise PermissionDenied() if request.POST: if request.POST['result'] == 'Cancel': return HttpResponseRedirect(reverse('accounts_detail', args=[object.id])) else: form = ConfirmForm(request.POST) if form.is_valid(): object.delete() messages.success(request, 'Account has been removed, with any Resources, Curations, Collections and Issues.') return HttpResponseRedirect(reverse('accounts')) else: form = ConfirmForm(initial={ 'object_name': object.name }) return render_to_response('ecutils/confirm.html', RequestContext( request, { 'form': form, 'title': 'Delete this user account?' }) )
def account(request, template_name='youraliss/account.html'): object = get_one_or_404(Account, local_id=str(request.user.id)) return account_edit(request, object.id, template_name, next='youraliss')
def curations(request, template_name='youraliss/curations.html'): object = get_one_or_404(Account, local_id=str(request.user.id)) curations = [c.resource for c in Curation.objects(owner=object).order_by('-item_metadata__last_modified')[:10]] template_context = {'object': object, 'curations': curations} return render_to_response(template_name, RequestContext(request, template_context))
def lists(request, template_name='youraliss/lists.html'): account = get_one_or_404(Account, local_id=str(request.user.id)) objects = Collection.objects(owner=account).order_by('-name') template_context = {'account': account, 'objects': objects} return render_to_response(template_name, RequestContext(request, template_context))
def resource_find(request, template_name='depot/resource_find.html'): """docstring for resource_find""" results = [] pt_results = {} centre = None new_search = False result = request.REQUEST.get('result', '') if request.method == 'POST' or result: if result == 'Cancel': return HttpResponseRedirect(reverse('resource_list')) form = FindResourceForm(request.REQUEST) if form.is_valid(): user = get_account(request.user.id) increment_queries(form.cleaned_data['kwords'], account=user) # print form.centre['loc'] if form.centre else None increment_locations(unicode(form.centre['loc']) if form.centre else None, account=user) for result in form.results: resource = get_one_or_404(Resource, id=ObjectId(result['res_id'])) result['resource'] = resource # try: # curation_index, curation = get_curation_for_user_resource(user, resource) # print curation # except TypeError: # curation_index = curation = None # curation_form = CurationForm( # initial={'outcome': STATUS_OK}, # instance=curation) # resource_report_form = ResourceReportForm() # results.append({ # 'resource_result': result, # 'curation': curation, # 'curation_form': curation_form, # 'resource_report_form': resource_report_form, # 'curation_index': curation_index # }) if 'pt_location' in result: pt_results.setdefault(tuple(result['pt_location'][0].split(', ')), []).append((result['res_id'], result['title'])) centre = form.centre else: form = FindResourceForm(initial={'boost_location': settings.SOLR_LOC_BOOST_DEFAULT}) new_search = True # hack cos map not showing if no centre point # map should show if pt_results anyway, but not happening # see also accounts.view.accounts_find # just north of Perth default_centre = {'location': ('56.5', '-3.5')} context = { 'next': urlquote_plus(request.get_full_path()), 'form': form, 'results': form.results, 'pt_results': pt_results, 'centre': centre or default_centre if pt_results else None, 'google_key': settings.GOOGLE_KEY, 'show_map': pt_results, 'new_search': new_search } return render_to_response(template_name, RequestContext(request, context))
def resource_edit(request, object_id, template_name='depot/resource_edit.html'): """ edits an existing resource. Uses a wizard-like approach, so checks resource.collection_status and hands off to resource_* function handler """ UPDATE_LOCS = 'Update locations' UPDATE_TAGS = 'Update tags' object = get_one_or_404(Resource, id=ObjectId(object_id), user=request.user, perm='can_edit') # doc = '' # places = None template_info = _template_info(request.REQUEST.get('popup', '')) if request.method == 'POST': result = request.POST.get('result', '') # or request.POST.get('result', '') if result == 'Cancel': return resource_edit_complete(request, object, template_info) resourceform = ShortResourceForm(request.POST, instance=object) eventform = EventForm(request.POST, instance=object.calendar_event) locationform = LocationUpdateForm(request.POST, instance=object) # shelflifeform = ShelflifeForm(request.POST, instance=object) if resourceform.is_valid(request.user) and locationform.is_valid( ) and eventform.is_valid(): acct = get_account(request.user.id) object.locations = locationform.locations increment_resource_crud('resouce_edit', account=acct) # Event dates event_start = eventform.cleaned_data['start'] if event_start: object.calendar_event = CalendarEvent( start=event_start, end=eventform.cleaned_data['end']) else: object.calendar_event = None object = resourceform.save(do_save=False) try: object.save(author=acct, reindex=True) return resource_edit_complete(request, object, template_info) except OperationError: pass else: resourceform = ShortResourceForm(instance=object) locationform = LocationUpdateForm(instance=object) eventform = EventForm(instance=object.calendar_event) # shelflifeform = ShelflifeForm(instance=object) return render_to_response( template_name, RequestContext( request, { 'template_info': template_info, 'object': object, 'resourceform': resourceform, 'locationform': locationform, 'eventform': eventform, #'places': places, # 'tagsform': tagsform, #'shelflifeform': shelflifeform, 'UPDATE_LOCS': UPDATE_LOCS, 'UPDATE_TAGS': UPDATE_TAGS }))
def user_detail(request, object_id, template_name='enginecab/user_detail.html'): object = get_one_or_404(Account, id=ObjectId(object_id)) return accounts_detail(request, object.id, template_name)
def profile(request, object_id=None, template_name='youraliss/profile.html'): object = get_one_or_404(Account, local_id=str(request.user.id)) return accounts_detail(request, object.id, template_name)
def locations_detail(request, object_id, template_name='enginecab/locations_detail.html'): object = get_one_or_404(Location, id=object_id) context = {'object': object} return render_to_response(template_name, RequestContext(request, context))
def user_password_reset(request, object_id): object = get_one_or_404(Account, id=ObjectId(object_id)) from django.contrib.auth.views import password_reset return password_reset(request, extra_context={'def_email': object.email})
def user_edit(request, object_id, template_name='enginecab/user_edit.html'): object = get_one_or_404(Account, id=ObjectId(object_id)) return account_edit(request, object.id, template_name, next='cab_user_detail')
def list_detail(request, object_id, template_name='youraliss/list_detail.html'): object = get_one_or_404(Collection, id=ObjectId(object_id)) context = {'object': object} return render_to_response(template_name, RequestContext(request, context))
def resource_detail(request, object_id, template_name='depot/resource_detail.html'): object = get_one_or_404(Resource, id=ObjectId(object_id)) increment_resources(object_id) return render_to_response(template_name, RequestContext( request, { 'object': object, 'yahoo_appid': settings.YAHOO_KEY, 'google_key': settings.GOOGLE_KEY }))