Commit d38a524d authored by Mario Chirinos Colunga's avatar Mario Chirinos Colunga 💬

admin

parent 8732738a
......@@ -5,5 +5,9 @@ from django.contrib import admin
from catalog.models import Publisher
admin.site.register(Publisher)
#admin.site.register(Publisher)
class PublisherAdmin(admin.ModelAdmin):
list_display = ('name', 'shortName', 'type', 'url')
admin.site.register(Publisher, PublisherAdmin)
No preview for this file type
......@@ -53,11 +53,11 @@
<ul class="nav nav-second-level" aria-expanded="true">
<form role="form">
<li>
<a href="#">JSON</a>
<a href="{% url 'ws-download-news' %}?{{ request.GET.urlencode }}&format=JSON" target="blank">JSON</a>
</li>
<li>
<a href="#">CSV</a>
<a href="{% url 'ws-download-news' %}?{{ request.GET.urlencode }}&format=CSV" target="blank">CSV</a>
</li>
......
......@@ -19,9 +19,24 @@ import urllib
from django.db.models import Count
from django.core.urlresolvers import reverse
import json
import StringIO
import time
import zipfile
import csv
from django.db.models.functions import TruncMonth, TruncYear
#-------------------------------------------------------------------------------
def news2JSON(news):
data = list()
for n in news:
item = dict()
item['date'] = n.date.strftime('%Y-%m-%d')
item['publisher'] = n.publisher.name
item['title'] = n.title
item['text'] = n.text
item['url'] = n.url
data.append(item)
return data
#-------------------------------------------------------------------------------
def getNewsByRequest(request):
print "getNewsByRequest\n\n\n"
......@@ -54,6 +69,7 @@ def index(request):
news = getNewsByRequest(request)
form = SearchForm(request.GET.copy())
if len(news)>0:
if 'startDate' not in form or ('startDate' in form and form['startDate'].value == ""):
form.data.update({'startDate':news.earliest('date').date.strftime("%Y-%m-%d")})
......@@ -188,8 +204,28 @@ def wsGraphs(request):
return HttpResponse(json.dumps(data), content_type="application/json")
#-------------------------------------------------------------------------------
def wsDownloadNews(request):
data=dict()
news = getNewsByRequest(request)
s = StringIO.StringIO() # Open StringIO to grab in-memory ZIP contents
zf = zipfile.ZipFile(s, "w") # The zip compressor
zf.writestr("setting.txt", json.dumps(request.GET))
data = news2JSON(news);
if request.GET['format']=="JSON":
data = 0;
return HttpResponse(json.dumps(data), content_type="application/json")
zf.writestr("data.json", json.dumps(data))
if request.GET['format']=="CSV":
csvString = StringIO.StringIO()
writer = csv.writer(csvString,quoting=csv.QUOTE_ALL)#, fieldnames=[k for k in data[0]])
# writer.writeheader()
for d in data:
row = [ d[k].encode('utf-8') for k in d ]
writer.writerow( row )
zf.writestr("data.csv", csvString.getvalue())
zf.close()
response = HttpResponse(s.getvalue(), content_type="application/x-zip-compressed")
response['Content-Disposition'] = 'attachment; filename="news_'+ str(int(time.time()))+'.zip"'
return response
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment