def status(request): page_title = 'System Status' page_count = models.Page.objects.all().count() issue_count = models.Issue.objects.all().count() batch_count = models.Batch.objects.all().count() title_count = models.Title.objects.all().count() holding_count = models.Holding.objects.all().count() essay_count = models.Essay.objects.all().count() pages_indexed = solr_index.page_count() titles_indexed = solr_index.title_count() return render(request, 'reports/status.html', locals())
def search_titles_results(request): page_title = 'Title Search Results' crumbs = list(settings.BASE_CRUMBS) crumbs.extend([{'label': 'Advanced Search', 'href': reverse('openoni_search_titles')}, ]) def prep_title_for_return(t): title = {} title.update(t.solr_doc) title['oclc'] = t.oclc return title format = request.GET.get('format', None) # check if requested format is CSV before building pages for response. CSV # response does not make use of pagination, instead all matching titles from # SOLR are returned at once if format == 'csv': query = request.GET.copy() q, fields, sort_field, sort_order, facets = solr_index.get_solr_request_params_from_query(query) # return all titles in csv format. * May hurt performance. Assumption is that this # request is not made often. # TODO: revisit if assumption is incorrect solr_response = solr_index.execute_solr_query(q, fields, sort_field, sort_order, solr_index.title_count(), 0) titles = solr_index.get_titles_from_solr_documents(solr_response) csv_header_labels = ('lccn', 'title', 'place_of_publication', 'start_year', 'end_year', 'publisher', 'edition', 'frequency', 'subject', 'state', 'city', 'country', 'language', 'oclc', 'holding_type',) response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="openoni_titles.csv"' writer = csv.writer(response) writer.writerow(csv_header_labels) for title in titles: writer.writerow(map(lambda val: smart_str(val or '--'), (title.lccn, title.name, title.place_of_publication, title.start_year, title.end_year, title.publisher, title.edition, title.frequency, map(str, title.subjects.all()), set(map(lambda p: p.state, title.places.all())), map(lambda p: p.city, title.places.all()), str(title.country), map(str, title.languages.all()), title.oclc, title.holding_types))) return response try: curr_page = int(request.GET.get('page', 1)) except ValueError, e: curr_page = 1
def status(request): page_title = 'System Status' page_count = models.Page.objects.all().count() issue_count = models.Issue.objects.all().count() batch_count = models.Batch.objects.all().count() title_count = models.Title.objects.all().count() holding_count = models.Holding.objects.all().count() essay_count = models.Essay.objects.all().count() pages_indexed = solr_index.page_count() titles_indexed = solr_index.title_count() return render_to_response('reports/status.html', dictionary=locals(), context_instance=RequestContext(request))