コード例 #1
0
ファイル: views.py プロジェクト: cumtjie/commcarehq-venv
def test(request, mapping_id, domain=None, template='ctable/test_mapping.html'):
    if mapping_id:
        try:
            limit = request.GET.get('limit', 100)
            if not limit or limit == 'undefined':
                limit = None
            elif limit:
                limit = int(limit)

            limit = min(limit, 1000)

            mapping = SqlExtractMapping.get(mapping_id)
            test_extractor = get_test_extractor()

            backend = get_backend(mapping.backend)
            with backend:
                checks = backend.check_mapping(mapping)

            rows_processed, rows_with_value = test_extractor.extract(mapping, date_range=-1, limit=limit)
            checks.update({
                'domain': domain,
                'mapping': mapping,
                'rows_processed': rows_processed,
                'rows_with_value': rows_with_value,
                'data': test_extractor.backend.data,
            })
            return render(request, template, checks)
        except ResourceNotFound:
            raise Http404()

    kwargs = {'domain': domain} if domain else {}
    return redirect('sql_mappings_list', **kwargs)
コード例 #2
0
ファイル: views.py プロジェクト: cumtjie/commcarehq-venv
def clear_data(request, mapping_id, domain=None):
    if mapping_id:
        try:
            mapping = SqlExtractMapping.get(mapping_id)
            get_extractor(mapping.backend).clear_all_data(mapping)
            return json_response({'status': 'success', 'message': _('Data successfully cleared.')})
        except ResourceNotFound:
            return json_response({'status': 'error', 'message': _('Mapping not found.')})

    return json_response({'status': 'error', 'message': _('Mapping not found.')})
コード例 #3
0
ファイル: views.py プロジェクト: cumtjie/commcarehq-venv
def delete(request, mapping_id, domain=None):
    if mapping_id:
        try:
            mapping = SqlExtractMapping.get(mapping_id)
            if domain:
                assert domain in mapping.domains
            assert mapping.doc_type == SqlExtractMapping._doc_type
            mapping.delete()
        except ResourceNotFound:
            raise Http404()

    kwargs = {'domain': domain} if domain else {}
    return redirect('sql_mappings_list', **kwargs)
コード例 #4
0
ファイル: views.py プロジェクト: cumtjie/commcarehq-venv
def toggle(request, mapping_id, domain=None):
    if mapping_id:
        try:
            mapping = SqlExtractMapping.get(mapping_id)
            # don't activate 'fluff' mappings
            if not mapping.auto_generated:
                mapping.active = not mapping.active
                mapping.save()
        except ResourceNotFound:
            raise Http404()

    kwargs = {'domain': domain} if domain else {}
    return redirect('sql_mappings_list', **kwargs)
コード例 #5
0
ファイル: views.py プロジェクト: cumtjie/commcarehq-venv
def edit(request, mapping_id, domain=None, template='ctable/edit_mapping.html'):
    if request.method == 'POST':
            d = _to_kwargs(request)
            if domain and domain not in d['domains']:
                d['domains'].append(domain)

            mapping = SqlExtractMapping.from_json(d)
            if mapping.couch_key_prefix and mapping.couch_key_prefix[0] == '':
                mapping.couch_key_prefix = None

            # check for unique name
            for dom in mapping.domains:
                existing = SqlExtractMapping.by_name(dom, mapping.name)
                if existing and existing._id != mapping._id:
                    args = {'domain': dom}
                    return json_response({'error': _("Mapping with the same name exists "
                                                     "in the '%(domain)s' domain.") % args})

            mapping.save()

            kwargs = {'domain': domain} if domain else {}
            return json_response({'redirect': reverse('sql_mappings_list', kwargs=kwargs)})

    if mapping_id:
        try:
            mapping = SqlExtractMapping.get(mapping_id)
        except ResourceNotFound:
            raise Http404()
    else:
        mapping = SqlExtractMapping()

    return render(request, template, {
        'domain': domain,
        'mapping': mapping,
        'backends': backends()
    })