Esempio n. 1
0
def cancel_form(request):
    """Cancel current form.

    Args:
        request:

    Returns:

    """
    try:
        # get curate data structure
        curate_data_structure_id = request.POST["id"]
        curate_data_structure = curate_data_structure_api.get_by_id(
            curate_data_structure_id, request.user)
        # unlock from database
        if curate_data_structure.data is not None:
            lock_api.remove_lock_on_object(curate_data_structure.data,
                                           request.user)
        curate_data_structure_api.delete(curate_data_structure, request.user)

        # add success message
        messages.add_message(
            request,
            messages.SUCCESS,
            get_form_label().capitalize() + " deleted with success.",
        )

        return HttpResponse(json.dumps({}),
                            content_type="application/javascript")
    except Exception as e:
        return HttpResponseBadRequest(
            "An unexpected error has occured: %s" % str(e).replace('"', "'"),
            content_type="application/javascript",
        )
Esempio n. 2
0
def cancel_form(request):
    """Cancel current form.

    Args:
        request:

    Returns:

    """
    try:
        # get curate data structure
        curate_data_structure_id = request.POST['id']
        curate_data_structure = curate_data_structure_api.get_by_id(
            curate_data_structure_id)
        # unlock from database
        if curate_data_structure.data is not None:
            lock_api.remove_lock_on_object(curate_data_structure.data,
                                           request.user)
        curate_data_structure_api.delete(curate_data_structure)

        # add success message
        messages.add_message(
            request, messages.SUCCESS,
            get_form_label().capitalize() + ' deleted with success.')

        return HttpResponse(json.dumps({}),
                            content_type='application/javascript')
    except:
        return HttpResponseBadRequest()
Esempio n. 3
0
def save_data(request):
    """Save data - delete curate data structure.

    Args:
        request:

    Returns:

    """
    try:
        # get curate data structure
        curate_data_structure_id = request.POST["id"]
        curate_data_structure = curate_data_structure_api.get_by_id(
            curate_data_structure_id, request.user)

        # unlock from database
        if curate_data_structure.data is not None:
            lock_api.remove_lock_on_object(curate_data_structure.data,
                                           request.user)

        # generate the XML
        xml_data = render_xml(
            request, curate_data_structure.data_structure_element_root)

        if curate_data_structure.data is not None:
            # update existing data
            data = curate_data_structure.data
        else:
            # create new data
            data = Data()
            data.title = curate_data_structure.name
            template = template_api.get(str(curate_data_structure.template.id),
                                        request=request)
            data.template = template
            data.user_id = str(request.user.id)

        # set content
        data.xml_content = xml_data
        # save data
        data = data_api.upsert(data, request)

        curate_data_structure_api.delete(curate_data_structure, request.user)

        messages.add_message(
            request,
            messages.SUCCESS,
            get_data_label().capitalize() + " saved with success.",
        )
    except Exception as e:
        return HttpResponseBadRequest(str(e).replace('"', "'"),
                                      content_type="application/javascript")

    return HttpResponse(json.dumps({"data_id": str(data.id)}),
                        content_type="application/javascript")
Esempio n. 4
0
def save_data(request):
    """Save data - delete curate data structure.

    Args:
        request:

    Returns:

    """
    try:
        # get curate data structure
        curate_data_structure_id = request.POST['id']
        curate_data_structure = curate_data_structure_api.get_by_id(
            curate_data_structure_id)

        # unlock from database
        if curate_data_structure.data is not None:
            lock_api.remove_lock_on_object(curate_data_structure.data,
                                           request.user)

        # generate the XML
        xml_data = render_xml(
            curate_data_structure.data_structure_element_root)

        if curate_data_structure.data is not None:
            # update existing data
            data = curate_data_structure.data
        else:
            # create new data
            data = Data()
            data.title = curate_data_structure.name
            data.template = curate_data_structure.template
            data.user_id = str(request.user.id)

        # set content
        data.xml_content = xml_data
        # save data
        data_api.upsert(data, request.user)

        curate_data_structure_api.delete(curate_data_structure)

        messages.add_message(
            request, messages.SUCCESS,
            get_data_label().capitalize() + ' saved with success.')
    except Exception, e:
        message = e.message.replace('"', '\'')
        return HttpResponseBadRequest(message,
                                      content_type='application/javascript')
Esempio n. 5
0
    def delete(self, request, pk):
        """Delete a Curate Data Structure

        Args:

            request: HTTP request
            pk: ObjectId

        Returns:

            - code: 204
              content: Deletion succeed
            - code: 404
              content: Object was not found
            - code: 500
              content: Internal server error
        """
        try:
            # Get object
            data_structure_object = self.get_object(request, pk)

            # delete object
            data_structure_api.delete(data_structure_object, request.user)

            # Return response
            return Response(status=status.HTTP_204_NO_CONTENT)
        except AccessControlError as e:
            content = {"message": str(e)}
            return Response(content, status=status.HTTP_403_FORBIDDEN)
        except Http404:
            content = {"message": "Data structure not found."}
            return Response(content, status=status.HTTP_404_NOT_FOUND)
        except Exception as api_exception:
            content = {"message": str(api_exception)}
            return Response(content,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 6
0
 def test_delete_others_data_structure_as_anonymous_user_raises_error(self):
     data_structure = self.fixture.data_structure_3
     mock_user = create_mock_user(self.fixture.data_structure_1.user)
     with self.assertRaises(AccessControlError):
         curate_data_structure_api.delete(data_structure, AnonymousUser())
Esempio n. 7
0
 def test_delete_own_data_structure_deletes_data_structure(self):
     data_structure = self.fixture.data_structure_1
     mock_user = create_mock_user(self.fixture.data_structure_1.user)
     curate_data_structure_api.delete(data_structure, mock_user)
Esempio n. 8
0
 def test_delete_others_data_structure_as_superuser_deletes_data_structure(self):
     data_structure = self.fixture.data_structure_3
     mock_user = create_mock_user(
         self.fixture.data_structure_1.user, is_staff=True, is_superuser=True
     )
     curate_data_structure_api.delete(data_structure, mock_user)
            request:
            form_ids:

        Returns:
        """
    try:
        list_form = _get_forms(form_ids, request.user.is_superuser,
                               request.user.id)
    except Exception, e:
        messages.add_message(request, messages.INFO, e.message)
        return HttpResponse(json.dumps({}),
                            content_type='application/javascript')

    try:
        for form in list_form:
            curate_data_structure_api.delete(form)
        messages.add_message(
            request, messages.INFO,
            get_form_label().capitalize() + ' deleted with success.')
    except:
        messages.add_message(request, messages.INFO,
                             'A problem occurred while deleting.')

    return HttpResponse(json.dumps({}), content_type='application/javascript')


def _delete_record(request, data_ids):
    """ Delete records.

    Args:
        request: