--- /dev/null
+{% extends "tweet/base.html" %}
+
+{% block title %}Download continu{% endblock %}
+
+{% block content %}
+ <div class="page-header">
+ <h1>Download Excel voor continu zoeken</h1>
+ </div>
+
+ <h2>Voortgang</h2>
+ <p>Het Excel-bestand wordt nu voor je gemaakt, even geduld aub...</p>
+ <div class="progress">
+ <div class="progress-bar" role="progressbar" aria-valuenow="2" aria-valuemin="0" aria-valuemax="100" style="min-width: 2em; width: 2%;">
+ 2%
+ </div>
+ </div>
+ <a class="btn btn-success" disabled="disabled" href="{% url 'tweet:download_stream' %}">Download Excel</a>
+ </div>
+
+<script type="text/javascript" charset="utf-8">
+var updateProgress=function() {
+ $(".progress-bar").each(function(){
+ //alert("id: " + id);
+ url="{% url 'tweet:export_stream_progress' %}"
+ $.ajax({
+ url: url,
+ success: function(data) {
+ bar=$(".progress-bar")
+ bar.html(data.progress+"%");
+ bar.css('width', data.progress+'%');
+ bar.attr("aria-valuenow", data.progress);
+ if(data.finished) {
+ $(".btn").removeAttr("disabled");
+ }
+ },
+ error: function() {
+ // ignore alert("Error!")
+ }
+ })
+ });
+}
+
+setInterval(function(){updateProgress()},1000);
+</script>
+{% endblock %}
<a class="btn btn-success" href="{% url 'tweet:list_jobs' %}">Toon resultaten </a>
<h2>Continue zoekactie</h2>
- <a class="btn btn-success" href="/tweet/stream/edit_terms">Stel zoektermen in</a>
+ <a class="btn btn-success" href="{% url 'tweet:edit_stream_terms' %}">Stel zoektermen in</a>
<br>
<br>
- <a class="btn btn-success" href="/tweet/stream/download_results">Download resultaten</a>
+ <a class="btn btn-success" href="{% url 'tweet:list_stream' %}">Overzicht resultaten</a>
+<br>
+<br>
+ <a class="btn btn-success" href="{% url 'tweet:download_stream' %}">Download resultaten</a>
{% endblock %}
url(r'^stream/list$', views.list_stream, name='list_stream'),
url(r'^stream/edit_terms$', views.edit_stream_terms, name='edit_stream_terms'),
url(r'^stream/download$', views.download_stream, name='download_stream'),
+ url(r'^stream/export$', views.export_stream, name='export_stream'),
+ url(r'^stream/export/progress$', views.export_stream_progress, name='export_stream_progress'),
url(r'^stream/(?P<tweet_id>[0-9]+)/delete$', views.delete_tweet, name='delete_tweet'),
]
import os
import os.path
import tempfile
+import threading
import time
from django.conf import settings
logger.info("Exporting stream tweets to excel...")
base_path = settings.TWEET_BASEPATH
filename = os.path.join(base_path, "tmp.xlsx")
- streamrunner.export_tweets(filename)
+ #streamrunner.export_tweets(filename)
response = FileResponse(open(filename, 'rb'), content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="stream.xlsx"'
return response
+
+def export_stream(request):
+ logger.info("Exporting stream tweets to excel...")
+ base_path = settings.TWEET_BASEPATH
+ filename = os.path.join(base_path, "tmp.xlsx")
+ #streamrunner.export_tweets(filename)
+ thread = threading.Thread(target=streamrunner.export_tweets, name="Stream exporter thread",
+ kwargs={'filename':filename})
+ thread.start()
+ return render(request, "tweet/export_stream.html")
+
+def export_stream_progress(request):
+ result = {
+ "progress": 33,
+ "finished": True
+ }
+ return JsonResponse(result)