Example #1
0
def edit_simple_entity(request, entity_id, entity_cls, form_cls, target, title='Entity'):
    entity = entity_cls.objects.get(pk=entity_id)
    entity_accessible(request, entity_cls, entity, True)
    
    if request.method == 'DELETE':
        if entity.can_delete():
            entity.delete()
            return HttpResponse()
        else:
            return HttpResponseBadRequest()
    
    if request.method == 'POST':
        form = form_cls(request.POST, instance=entity, user=request.user)
        if form.is_valid():
            try:
                form.save()
                return render(request, 'edit_ok.html')
            # TODO @iia catch by different exceptions
            except Exception as e:
                data = {'form': form, 'target': target, 'entity_id': entity_id,
                        'title': title + ' ' + entity.name}
                logger.exception('Cannot save entity')
                form.add_form_error(e)

                return render(request, 'edit_dialog.html', data)
    else:
        form = form_cls(instance=entity, user=request.user)
    
    data = {'form': form, 'target': target, 'entity_id': entity_id,
            'title': title + ' ' + entity.name}
    return render(request, 'edit_dialog.html', data)
Example #2
0
def entity_view(request, entity_cls, entity_id, edit_name, view_name,
                template_name='entity_view.html', template_entity='entity',
                extra_data=None):
    entity = entity_cls.objects.get(id=entity_id)
    entity_accessible(request, entity_cls, entity)
    data = {template_entity: entity, 'entity_cls': entity_cls,
            'edit_name': edit_name, 'view_name': view_name}
    if extra_data != None:
        data.update(extra_data)
    return render(request, template_name, data)