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)
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.')})
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)
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)
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() })