Exemplo n.º 1
0
 def post(self, request, *args, **kwargs):
     """
     Handles POST requests, instantiating a form instance with the passed
     POST variables and then checked for validity.
     """
     form = CategoryForm(request.POST, instance=self.get_object())
     if form.is_valid():
         self.form_valid(form)
         # process categorical vars
         categorical_vars_ids = self.object.get_categorical_vars().values_list('id', flat=True)
         new_categorical_vars_ids = [int(x) for x in request.POST.getlist('categorical_variables')]
         deleted_categorical_vars_ids = list(set(categorical_vars_ids) - set(new_categorical_vars_ids))
         added_categorical_vars_ids = list(set(new_categorical_vars_ids) - set(categorical_vars_ids))
         for id in deleted_categorical_vars_ids:
             CategoricalVariable.objects.get(pk=id).delete()
         for id in added_categorical_vars_ids:
             categorical_var = CategoricalVariable.objects.get(pk=id)
             categorical_var.pk = None
             categorical_var.id = None
             categorical_var.category = self.object
             categorical_var.save()
         # process numerical vars
         numerical_vars_ids = self.object.get_numerical_vars().values_list('id', flat=True)
         new_numerical_vars_ids = [int(x) for x in request.POST.getlist('numerical_variables')]
         deleted_numerical_vars_ids = list(set(numerical_vars_ids) - set(new_numerical_vars_ids))
         added_numerical_vars_ids = list(set(new_numerical_vars_ids) - set(numerical_vars_ids))
         for id in deleted_numerical_vars_ids:
             NumericalVariable.objects.get(pk=id).delete()
         for id in added_numerical_vars_ids:
             numerical_var = NumericalVariable.objects.get(pk=id)
             numerical_var.pk = None
             numerical_var.id = None
             numerical_var.category = self.object
             numerical_var.save()
         # process questions
         questions_ids = self.object.get_usual_questions().values_list('id', flat=True)
         new_questions_ids = [int(x) for x in request.POST.getlist('questions')]
         deleted_questions_ids = list(set(questions_ids) - set(new_questions_ids))
         added_questions_ids = list(set(new_questions_ids) - set(questions_ids))
         for id in deleted_questions_ids:
             Question.objects.get(pk=id).delete()
         for id in added_questions_ids:
             question = Question.objects.get(pk=id)
             question.pk = None
             question.category = self.object
             question.save()
             # Automatically create Algorithm for new question
             algo_name = 'Algo for %s question with ID: %d' % (question.type, question.pk)
             algorithm = Algorithm(question=question, name=algo_name)
             algorithm.save()
         if 'submit-form-and-add-another' in request.POST:
             return HttpResponseRedirect(
                 reverse('dashboard:category_create', args=[get_contract_pk(self.request)]))
         return HttpResponseRedirect(self.get_success_url())
     else:
         self.object = None
         return self.form_invalid(form)
Exemplo n.º 2
0
def category_edit(request, slug=None):
    cat = None
    if slug is not None:
        cat = get_object_or_404(Category, slug = slug)
    if request.method == 'POST':
        form = CategoryForm(request.POST, instance = cat)
        if form.is_valid():
            form.save()
            messages.info(request, "Category updated")
            return HttpResponseRedirect(reverse('dashboard_categories'))
    else:
        form = CategoryForm(instance = cat)

    if slug is not None:
        pics = cat.photos.all()
        avail = Photo.objects.exclude(id__in = [p.id for p in pics])

    return render(request, 'dashboard/category_edit.html', locals())
Exemplo n.º 3
0
def category_create(request):
    if request.session.get('user_type') == 'seller':
        if request.method == 'GET':
            form = CategoryForm()
        if request.method == 'POST':
            form = CategoryForm(request.POST)
            if form.is_valid():
                form.save()
                return redirect('home')
        return render(request, 'dashboard/modals/category_form.html',
                      {'form': form})
Exemplo n.º 4
0
def category_update(request, pk):
    if request.session.get('user_type') == 'seller':
        category = get_object_or_404(Category, pk=pk)
        if request.method == 'GET':
            form = CategoryForm(instance=category)
        if request.method == 'POST':
            form = CategoryForm(request.POST, instance=category)
            if form.is_valid():
                form.save()
                return redirect('home')
        return render(request, 'dashboard/modals/category_form.html',
                      {'form': form})
    else:
        return redirect('home')
Exemplo n.º 5
0
def CategoryAddPage(request):
    form = CategoryForm()
    if request.method == "POST":
        form = CategoryForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Category  been Added succesfully')
            return redirect('dashboard:categories')
        else:
            print(form.errors)
    context = {
        "dash_title": 'Add Category',
        "form": form,
    }
    return render(request, "dashboard/add-locality.html", context)
Exemplo n.º 6
0
def CategoryEditPage(request, *args, **kwargs):
    category = get_object_or_404(Category, pk=kwargs["id"])
    form = CategoryForm(instance=category)
    if request.method == "POST":
        form = CategoryForm(request.POST, instance=category)
        if form.is_valid():
            form.save()
            messages.success(request, 'Category  been updated succesfully')
            return redirect('dashboard:categories')
        else:
            print(form.errors)
    context = {
        "dash_title": 'Edit Category',
        "form": form,
    }
    return render(request, "dashboard/edit-locality.html", context)