Ejemplo n.º 1
0
def add_category(request):

    form = ToolCategoryForm()

    if request.method == 'POST':
        form = ToolCategoryForm(request.POST, request.FILES)
        if form.is_valid():
            cat = ToolCategory.objects.create(**form.cleaned_data)
            messages.success(request, "You created a toolbox section")
            return redirect('tools:show_category', cat.id)

    context = {'form': form}
    return render(request, 'tools/add_category.html', context)
Ejemplo n.º 2
0
def edit_category(request, cat_id):
    # TODO: use celery tasks for storage IO so id doesn't block transaction
    category = get_object_or_404(ToolCategory, id=cat_id)

    attributes = {
        'title': category.title,
        'description': category.description,
        'published': category.published,
        'resources_text': category.resources_text,
        'group': category.group.id,
    }

    if category.cover_image and \
            default_storage.exists(category.cover_image.name):
        files = {'cover_image': category.cover_image}
    else:
        files = {}
    form = ToolCategoryForm(attributes, files)

    if request.method == 'POST':
        form = ToolCategoryForm(request.POST, request.FILES)
        if form.is_valid():
            if request.POST.get('cover_image-clear'):
                cover_image = None
                if category.has_existing_cover_image():
                    default_storage.delete(category.cover_image.name)
            else:
                if form.cleaned_data['cover_image']:
                    if category.has_existing_cover_image():
                            default_storage.delete(category.cover_image.name)
                    cover_image = form.cleaned_data['cover_image']
                else:
                    cover_image = category.cover_image

            category.published = form.cleaned_data['published']
            category.title = form.cleaned_data['title']
            category.description = form.cleaned_data['description']
            category.cover_image = cover_image
            category.resources_text = form.cleaned_data['resources_text']
            category.group = form.cleaned_data['group']
            category.save()
            messages.success(request, "You updated this toolbox section")
            return redirect('tools:show_category', category.id)

    context = {'category': category, 'form': form}
    return render(request, 'tools/edit_category.html', context)
Ejemplo n.º 3
0
def edit_category(request, cat_id):
    # TODO: use celery tasks for storage IO so id doesn't block transaction
    category = get_object_or_404(ToolCategory, id=cat_id)

    attributes = {
        'title': category.title,
        'description': category.description,
        'published': category.published,
        'resources_text': category.resources_text,
        'group': category.group.id,
    }

    if category.cover_image and \
            default_storage.exists(category.cover_image.name):
        files = {'cover_image': category.cover_image}
    else:
        files = {}
    form = ToolCategoryForm(attributes, files)

    if request.method == 'POST':
        form = ToolCategoryForm(request.POST, request.FILES)
        if form.is_valid():
            if request.POST.get('cover_image-clear'):
                cover_image = None
                if category.has_existing_cover_image():
                    default_storage.delete(category.cover_image.name)
            else:
                if form.cleaned_data['cover_image']:
                    if category.has_existing_cover_image():
                        default_storage.delete(category.cover_image.name)
                    cover_image = form.cleaned_data['cover_image']
                else:
                    cover_image = category.cover_image

            category.published = form.cleaned_data['published']
            category.title = form.cleaned_data['title']
            category.description = form.cleaned_data['description']
            category.cover_image = cover_image
            category.resources_text = form.cleaned_data['resources_text']
            category.group = form.cleaned_data['group']
            category.save()
            messages.success(request, "You updated this toolbox")
            return redirect('tools:show_category', category.id)

    context = {'category': category, 'form': form}
    return render(request, 'categories/edit_category.html', context)
Ejemplo n.º 4
0
def add_category(request, group_category_id=None):
    if group_category_id:

        form = ToolCategoryForm(initial={'group': group_category_id})
    else:
        form = ToolCategoryForm()

    if request.method == 'POST':
        form = ToolCategoryForm(request.POST, request.FILES)
        if form.is_valid():
            cat = ToolCategory.objects.create(**form.cleaned_data)
            messages.success(request, "You created a toolbox")
            return redirect('tools:show_category', cat.id)

    context = {'form': form}
    return render(request, 'categories/add_category.html', context)