diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 25 |
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: |