summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index d6d16568a..9ff53e89a 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1857,7 +1857,8 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
user = models.IshtarUser.objects.get(pk=self.request.user.pk)
if self.imprt_obj.user != user:
raise Http404
- self.current_line_number = int(self.kwargs['line_number']) - 1
+ if not hasattr(self, 'current_line_number'):
+ self.current_line_number = int(self.kwargs['line_number']) - 1
def update_csv(self, request):
prefix = 'col-'
@@ -1889,6 +1890,15 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
self.errors = [e.message]
return super(ImportStepByStepView, self).get(request, *args,
**kwargs)
+ is_current = self.current_line_number == self.imprt_obj.current_line
+ if self.imprt_obj.get_number_of_lines() >= self.current_line_number:
+ self.current_line_number += 1
+ else:
+ self.current_line_number = None
+ if is_current:
+ self.imprt_obj.current_line = self.current_line_number
+ self.imprt_obj.save()
+ return self.current_line_number
def post(self, request, *args, **kwargs):
if not request.POST or request.POST.get('valid', None) not in (
@@ -1899,9 +1909,12 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
if request.POST.get('valid') == 'change-csv':
self.update_csv(request)
return self.get(request, *args, **kwargs)
- self.import_line(request, *args, **kwargs)
- # todo redirect to next
- return self.get(request, *args, **kwargs)
+ if not self.import_line(request, *args, **kwargs):
+ return HttpResponseRedirect(reverse('current_imports'))
+ else:
+ return HttpResponseRedirect(
+ reverse('import_step_by_step',
+ args=[self.imprt_obj.pk, self.current_line_number + 1]))
def get(self, request, *args, **kwargs):
self.get_import()
@@ -1926,7 +1939,9 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
def get_context_data(self, **kwargs):
dct = super(ImportStepByStepView, self).get_context_data(**kwargs)
dct['import'] = self.imprt_obj
- dct['line_number_displayed'] = self.kwargs['line_number']
+ dct['line_number_displayed'] = self.current_line_number + 1
+ dct['line_is_imported'] = self.imprt_obj.line_is_imported(
+ self.current_line_number)
dct['errors'] = self.errors
if self.errors:
if self.imprt.current_csv_line: