Beispiel #1
0
    def post(self, request, *args, **kwargs):
        """Post
        """

        self.get_all_args()

        # Convert back to OCLAPI format for extras, the dictionnary
        # key is the attribute name.
        data = {}
        fn = fv = None
        try:
            fn = self.request_json.get('extra_name')
            fv = self.request_json.get('extra_value')
            data[fn] = fv
        except KeyError:
            resp = {'message': _('Invalid input')}
            return self.render_bad_request_response(resp)

        api = OclApi(self.request, debug=True)
        if self.is_edit():
            result = api.put(*self.build_url(fn), **data)
            msg = _('Extra updated')
        else:
            result = api.put(*self.build_url(fn), **data)
            msg = _('Extra added')

        if not result.ok:
            logger.warning('Extra GET failed %s' % result.content)
            return self.render_bad_request_response(result.content)
        else:
            return self.render_json_response({'message': msg})
Beispiel #2
0
    def post(self, request, *args, **kwargs):
        """ Post the form data """

        self.get_all_args()

        # Convert back to OCLAPI format for extras, the dictionnary
        # key is the attribute name.
        data = {}
        fn = fv = None
        try:
            print 'request json:', self.request_json
            fn = self.request_json.get('extra_name')
            fv = self.request_json.get('extra_value')
            data[fn] = fv
        except KeyError:
            resp = {'message': _('Invalid input')}
            return self.render_bad_request_response(resp)

        api = OclApi(self.request, debug=True)
        if self.is_edit():
            result = api.put(self.owner_type, self.owner_id, 'sources', self.source_id,
                             'concepts', self.concept_id, 'extras', fn,
                             **data)
            msg = _('Extra updated')
        else:
            result = api.put(self.owner_type, self.owner_id, 'sources', self.source_id,
                             'concepts', self.concept_id, 'extras', fn, **data)
            msg = _('Extra added')

        if not result.ok:
            logger.warning('Extra GET failed %s' % result.content)
            return self.render_bad_request_response(result.content)
        else:
            return self.render_json_response({'message': msg})
Beispiel #3
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        if not data['expressions']:
            return HttpResponseBadRequest(json.dumps({
                'errors': ('%s' % EXPRESSIONS_SHOULD_EXIST)
            }))


        result = api.put(
            self.owner_type,
            self.owner_id,
            'collections',
            self.collection_id,
            'references',
            data=data
        )

        results = result.json()
        errors = results if result.status_code == requests.codes.bad else None

        if len(filter(lambda result: result['added'], results)) > 0:
            self.add_version_warning_to_session(data, request, results)

        return HttpResponse(
            json.dumps({
                'update_results': results,
                'success_url': self.get_success_url(),
                'errors': errors,
            }),
            content_type="application/json"
        )
Beispiel #4
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        if not data['expressions']:
            return HttpResponseBadRequest(
                json.dumps({'errors': ('%s' % EXPRESSIONS_SHOULD_EXIST)}))

        result = api.put(self.owner_type,
                         self.owner_id,
                         'collections',
                         self.collection_id,
                         'references',
                         data=data)

        results = result.json()
        errors = results if result.status_code == requests.codes.bad else None

        if len(filter(lambda result: result['added'], results)) > 0:
            self.add_version_warning_to_session(data, request, results)

        return HttpResponse(json.dumps({
            'update_results': results,
            'success_url': self.get_success_url(),
            'errors': errors,
        }),
                            content_type="application/json")
Beispiel #5
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        if self.adding_single_reference(data) and not data['expressions']:
            return HttpResponseBadRequest(
                json.dumps({'errors': ('%s' % EXPRESSIONS_SHOULD_EXIST)}))

        result = api.put(
            self.owner_type,
            self.owner_id,
            'collections',
            self.collection_id,
            'references',
            data=data,
            params={'cascade': request.GET.get('cascade', 'sourcemappings')})

        results = result.json()
        errors = results if result.status_code == requests.codes.bad else None

        added_result_count = len(
            filter(lambda result: result['added'], results))

        if added_result_count > 0 and self.show_warning(
                request.GET.get('warning', 'hide')):
            self.add_version_warning_to_session(data, request, results)

        return HttpResponse(json.dumps({
            'update_results': results,
            'success_url': self.get_success_url(),
            'errors': errors,
        }),
                            content_type="application/json")
Beispiel #6
0
    def post(self, request, *args, **kwargs):
        """ Post the data """

        self.get_all_args()
        data = {}
        try:
            print 'request json:', self.request_json
            for n in self.field_names:
                # Skipping over fields that are not given -- exception is never thrown now...??
                v = self.request_json.get(n, None)
                if v is not None:
                    data[n] = v
        except KeyError:
            resp = {u"message": _('Invalid input')}
            return self.render_bad_request_response(resp)

        api = OclApi(self.request, debug=True)
        if self.is_edit():
            if self.item_name == 'mappings':
                result = api.put(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    self.item_name, **data)
            else:
                result = api.put(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    'concepts', self.concept_id, self.item_name, self.item_id, **data)
            msg = _('updated')
        else:
            if self.item_name == 'mappings':
                result = api.post(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    self.item_name, **data)
            else:
                result = api.post(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    'concepts', self.concept_id, self.item_name, **data)
            msg = _('added')

        if not result.ok:
            logger.warning('Update failed %s' % result.content)
            return self.render_bad_request_response(result.content)

        return self.render_json_response({'message': msg})
Beispiel #7
0
    def post(self, request, *args, **kwargs):
        """ Post the data """

        self.get_all_args()
        data = {}
        try:
            print 'request json:', self.request_json
            for n in self.field_names:
                # Skipping over fields that are not given -- exception is never thrown now...??
                v = self.request_json.get(n, None)
                if v is not None:
                    data[n] = v
        except KeyError:
            resp = {u"message": _('Invalid input')}
            return self.render_bad_request_response(resp)

        api = OclApi(self.request, debug=True)
        if self.is_edit():
            if self.item_name == 'mappings':
                result = api.put(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    self.item_name, **data)
            else:
                result = api.put(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    'concepts', self.concept_id, self.item_name, self.item_id, **data)
            msg = _('updated')
        else:
            if self.item_name == 'mappings':
                result = api.post(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    self.item_name, **data)
            else:
                result = api.post(
                    self.owner_type, self.owner_id, 'sources', self.source_id,
                    'concepts', self.concept_id, self.item_name, **data)
            msg = _('added')

        if not result.ok:
            logger.warning('Update failed %s' % result.content)
            return self.render_bad_request_response(result.content)

        return self.render_json_response({'message': msg})
Beispiel #8
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        result = api.put(self.owner_type,
                         self.owner_id,
                         'collections',
                         self.collection_id,
                         'references',
                         data=data)
        errors = result.json(
        ) if result.status_code == requests.codes.bad else []
        return HttpResponse(json.dumps({
            'success_url': self.get_success_url(),
            'errors': errors
        }),
                            content_type="application/json")
Beispiel #9
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        if self.adding_single_reference(data) and not data['expressions']:
            return HttpResponseBadRequest(
                json.dumps({'errors': ('%s' % EXPRESSIONS_SHOULD_EXIST)}))

        result = api.put(self.owner_type,
                         self.owner_id,
                         'collections',
                         self.collection_id,
                         'references',
                         data=data)

        results = result.json()
        errors = results if result.status_code == requests.codes.bad else None

        added_result_count = len(
            filter(lambda result: result['added'], results))
        mapping_expressions = [
            res['expression'] for res in results
            if 'mappings' in res['expression']
        ]

        if added_result_count > 0:
            self.add_version_warning_to_session(data, request, results)
            if self.adding_single_reference(data):
                request.session['added_mappings'] = mapping_expressions

        if len(
                results
        ) == added_result_count and not self.adding_single_reference(data):
            request.session['added_mappings'] = \
                filter(lambda exp: exp not in data['mappings'], mapping_expressions)

        return HttpResponse(json.dumps({
            'update_results': results,
            'success_url': self.get_success_url(),
            'errors': errors,
        }),
                            content_type="application/json")
Beispiel #10
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        result = api.put(
            self.owner_type,
            self.owner_id,
            'collections',
            self.collection_id,
            'references',
            data=data
        )
        errors = result.json() if result.status_code == requests.codes.bad else []
        return HttpResponse(
            json.dumps({
                'success_url': self.get_success_url(),
                'errors': errors
            }),
            content_type="application/json"
        )
Beispiel #11
0
    def form_valid(self, form, *args, **kwargs):
        """
        Validates the form data and submits if valid
        """
        print args
        print kwargs
        self.get_org()
        new_username = form.cleaned_data.pop('member_username')

        api = OclApi(self.request, debug=True)

        result = api.put('orgs', self.org['id'], 'members', new_username)

        # TODO:  Catch exceptions that will be raised by
        # Ocl lib.
        if result.status_code == 204:
            messages.add_message(self.request, messages.INFO, _('Member Added'))
            return redirect(reverse('org-details', kwargs={'org': self.org['id']}))
        elif result.status_code == 404:
            messages.add_message(self.request, messages.ERROR, 'Member doesn\'t exist')
        return super(OrganizationMemberAddView, self).form_invalid(form)
Beispiel #12
0
    def form_valid(self, form, *args, **kwargs):
        """
        Validates the form data and submits if valid
        """
        print args
        print kwargs
        self.get_org()
        new_username = form.cleaned_data.pop('member_username')

        api = OclApi(self.request, debug=True)

        result = api.put('orgs', self.org['id'], 'members', new_username)

        # TODO:  Catch exceptions that will be raised by
        # Ocl lib.
        if result.status_code == 204:
            messages.add_message(self.request, messages.INFO,
                                 _('Member Added'))
            return redirect(
                reverse('org-details', kwargs={'org': self.org['id']}))
        elif result.status_code == 404:
            messages.add_message(self.request, messages.ERROR,
                                 'Member doesn\'t exist')
        return super(OrganizationMemberAddView, self).form_invalid(form)
Beispiel #13
0
    def form_valid(self, form, *args, **kwargs):
        """ Use validated form data to delete the collection"""

        self.get_args()
        data = form.cleaned_data
        # resolver = resolve(data)
        api = OclApi(self.request, debug=True)
        result = api.put(self.owner_type, self.owner_id, 'collections', self.collection_id, 'references', **data)

        if not result.status_code == requests.codes.all_good:
            emsg = result.json().get('detail', 'Error')
            messages.add_message(self.request, messages.ERROR, emsg)
            return HttpResponseRedirect(self.request.path)

        messages.add_message(self.request, messages.INFO, _('Expression added.'))

        if self.from_org:
            return HttpResponseRedirect(reverse('collection-references',
                                                kwargs={'org': self.org_id,
                                                        'collection': self.collection_id}))
        else:
            return HttpResponseRedirect(reverse('collection-references',
                                                kwargs={'user': self.user_id,
                                                        'collection': self.collection_id}))
Beispiel #14
0
    def post(self, request, *args, **kwargs):
        self.get_args()
        data = json.loads(request.body)
        api = OclApi(self.request, debug=True)

        if self.adding_single_reference(data) and not data['expressions']:
            return HttpResponseBadRequest(json.dumps({
                'errors': ('%s' % EXPRESSIONS_SHOULD_EXIST)
            }))

        result = api.put(
            self.owner_type,
            self.owner_id,
            'collections',
            self.collection_id,
            'references',
            data=data,
            params={'cascade': request.GET.get('cascade', 'sourcemappings')}
        )

        results = result.json()
        errors = results if result.status_code == requests.codes.bad else None

        added_result_count = len(filter(lambda result: result['added'], results))

        if added_result_count > 0 and self.show_warning(request.GET.get('warning', 'hide')):
            self.add_version_warning_to_session(data, request, results)

        return HttpResponse(
            json.dumps({
                'update_results': results,
                'success_url': self.get_success_url(),
                'errors': errors,
            }),
            content_type="application/json"
        )