Add RefreshPageView class
This commit is contained in:
parent
4c2f2cd50e
commit
10de2b5df6
1 changed files with 51 additions and 0 deletions
51
app/views.py
51
app/views.py
|
@ -84,6 +84,57 @@ class ReindexPageView(TemplateView):
|
||||||
return HttpResponsePermanentRedirect(reverse('admin:index'))
|
return HttpResponsePermanentRedirect(reverse('admin:index'))
|
||||||
|
|
||||||
|
|
||||||
|
class RefreshPageView(TemplateView):
|
||||||
|
template_name = ""
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
return context
|
||||||
|
|
||||||
|
def post(self, request):
|
||||||
|
global c_progress
|
||||||
|
c_progress = 0
|
||||||
|
|
||||||
|
def generate():
|
||||||
|
stats = []
|
||||||
|
total = 0
|
||||||
|
for fmt in DATAFORMATS:
|
||||||
|
global c_filename
|
||||||
|
c_filename = fmt['filename']
|
||||||
|
filename = get_datafile(fmt)
|
||||||
|
c = 1
|
||||||
|
c_counter = 0
|
||||||
|
rd = refresh_data(filename, fmt)
|
||||||
|
while c is not None:
|
||||||
|
try:
|
||||||
|
c, p = next(rd)
|
||||||
|
except Exception as e:
|
||||||
|
yield 'error: %s' % str(e)
|
||||||
|
#traceback.print_exc()
|
||||||
|
return
|
||||||
|
if isinstance(c, (int, float)):
|
||||||
|
global c_progress
|
||||||
|
c_counter = c
|
||||||
|
if isinstance(p, (int, float)):
|
||||||
|
c_progress = p
|
||||||
|
yield str(c) + "\n\n"
|
||||||
|
elif isinstance(p, str) and isinstance(c, str):
|
||||||
|
# Error condition
|
||||||
|
yield p + ": " + c + "\n\n"
|
||||||
|
return
|
||||||
|
|
||||||
|
stats.append({'format': fmt['dataformat'], 'count': c_counter})
|
||||||
|
print("Refresh: %d counted at %s" % (c_counter, fmt['dataformat']))
|
||||||
|
total = total + c_counter
|
||||||
|
|
||||||
|
yield "done: %d objects updated" % total
|
||||||
|
print("Refresh: %d objects updated" % total)
|
||||||
|
|
||||||
|
c_progress = 0
|
||||||
|
c_filename = ""
|
||||||
|
return HttpResponse(generate(), content_type='text/html')
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationPageView(TemplateView):
|
class ConfigurationPageView(TemplateView):
|
||||||
template_name = "app/admin/config.html"
|
template_name = "app/admin/config.html"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue