def edit_type(request, code, step='edit_type', template='mdtui/indexing.html'): """Indexing step: Edit. Editing document type (in fact document rename) @param request: is a Django request object @param code: is a DMS Object() code for view interactions @param step: is a current step name (for template rendering) @param template: is a name of template for this view""" context = {} warnings = [ MDTUI_ERROR_STRINGS['EDIT_TYPE_WARNING'], ] error_warnings = [] form = False processor = DocumentProcessor() return_url = reverse('mdtui-edit', kwargs={'code': code}) log.debug('indexing_edit_type view called with code: %s' % code) doc = processor.read(code, { 'user': request.user, }) if not processor.errors: empty_form = make_document_type_select_form( request.user, docrule_initial=doc.get_docrule()) form = empty_form(request.POST or None) if request.POST: if form.is_valid(): docrule = form.cleaned_data['docrule'] current_docrule = doc.get_docrule() if not docrule == current_docrule: options = { 'user': request.user, 'new_type': docrule, } doc = processor.update(code, options) if not processor.errors: return HttpResponseRedirect( reverse('mdtui-edit', kwargs={'code': doc.get_filename()})) else: warnings = [ MDTUI_ERROR_STRINGS['EDIT_TYPE_ERROR'], ] # Can cause errors in two places here (on doc read and update) if processor.errors: for error in processor.errors: error_warnings.append(error) context.update({ 'step': step, 'doc_name': code, 'docrule': doc.get_docrule(), 'warnings': warnings, 'form': form, 'type_edit_return': return_url, 'error_warnings': error_warnings, }) return render(request, template, context)
def edit_type(request, code, step='edit_type', template='mdtui/indexing.html'): """Indexing step: Edit. Editing document type (in fact document rename) @param request: is a Django request object @param code: is a DMS Object() code for view interactions @param step: is a current step name (for template rendering) @param template: is a name of template for this view""" context = {} warnings = [MDTUI_ERROR_STRINGS['EDIT_TYPE_WARNING'], ] error_warnings = [] form = False processor = DocumentProcessor() return_url = reverse('mdtui-edit', kwargs={'code': code}) log.debug('indexing_edit_type view called with code: %s' % code) doc = processor.read(code, {'user': request.user, }) if not processor.errors: empty_form = make_document_type_select_form(request.user, docrule_initial=doc.get_docrule()) form = empty_form(request.POST or None) if request.POST: if form.is_valid(): docrule = form.cleaned_data['docrule'] current_docrule = doc.get_docrule() if not docrule == current_docrule: options = { 'user': request.user, 'new_type': docrule, } doc = processor.update(code, options) if not processor.errors: return HttpResponseRedirect(reverse('mdtui-edit', kwargs={'code': doc.get_filename()})) else: warnings = [MDTUI_ERROR_STRINGS['EDIT_TYPE_ERROR'], ] # Can cause errors in two places here (on doc read and update) if processor.errors: for error in processor.errors: error_warnings.append(error) context.update({ 'step': step, 'doc_name': code, 'docrule': doc.get_docrule(), 'warnings': warnings, 'form': form, 'type_edit_return': return_url, 'error_warnings': error_warnings, }) return render(request, template, context)
def search_type(request, step, template='mdtui/search.html'): """Search Step 1: Select Search MDT @param request: is a Django request object @param step: is a current step name (for template rendering) @param template: is a name of template for this view""" warnings = [] cleanup_indexing_session(request) # Initialising MDT or Docrule form according to data provided valid_call = True required_mdt = True required_docrule = True if request.POST: # Cleaning search session selections cleanup_search_session(request) cleanup_mdts(request) # Checking if docrule or mdt selected try: if request.POST['docrule']: required_mdt = False except KeyError: pass try: if request.POST['mdt']: required_docrule = False except KeyError: pass # Do not process in case docrule and MDT provided try: if request.POST['docrule'] and request.POST['mdt']: valid_call = False warnings.append(MDTUI_ERROR_STRINGS['NO_MDT_NO_DOCRULE']) except KeyError: pass # Rendering forms accordingly mdts_filtered_form = make_mdt_select_form(request.user, required_mdt) mdts_form = mdts_filtered_form(request.POST or None) docrules_filtered_form = make_document_type_select_form(request.user, required_docrule) docrules_form = docrules_filtered_form(request.POST or None) # POST Validation for either docrule OR mdt selected if request.POST and valid_call: if mdts_form.is_valid() and not required_docrule: mdts = None mdt_form_id = None try: mdt_form_id = mdts_form.data["mdt"] except KeyError: pass # CouchDB connection Felt down warn user if mdt_form_id: try: mdt_names = get_mdt_from_search_mdt_select_form(mdt_form_id, mdts_filtered_form) request.session['search_mdt_id'] = mdt_form_id mdts = get_mdts_by_names(mdt_names) docrules_list = mdts['1']['docrule_id'] if not request.user.is_superuser: request.session['search_docrule_ids'] = filter_permitted_docrules(docrules_list, request.user) else: request.session['search_docrule_ids'] = docrules_list except RequestError: warnings.append(MDTUI_ERROR_STRINGS['NO_DB']) if mdts: request.session['mdts'] = mdts if valid_call: return HttpResponseRedirect(reverse('mdtui-search-options')) else: if not MDTUI_ERROR_STRINGS['NO_MDTS'] in warnings: warnings.append(MDTUI_ERROR_STRINGS['NO_MDTS']) if docrules_form.is_valid() and not required_mdt: # If Docrule selected than MDT is not required and MDT's form is valid in fact docrule_form_id = None try: docrule_form_id = docrules_form.data["docrule"] except KeyError: pass if docrule_form_id: request.session['searching_docrule_id'] = docrule_form_id mdts = get_mdts_for_docrule(docrule_form_id) if mdts: request.session['mdts'] = mdts if valid_call: return HttpResponseRedirect(reverse('mdtui-search-options')) else: if not MDTUI_ERROR_STRINGS['NO_MDTS'] in warnings: warnings.append(MDTUI_ERROR_STRINGS['NO_MDTS']) else: # Populating forms with preexisting data if provided mdt_id = None docrule_id = None # Trying to set docrule if previously selected try: docrule_id = request.session['searching_docrule_id'] except KeyError: pass if docrule_id: docrules_form = docrules_filtered_form({'docrule': docrule_id}) # Trying to set mdt if previously selected try: mdt_id = request.session['search_mdt_id'] except KeyError: pass if mdt_id: mdts_form = mdts_filtered_form({'mdt': mdt_id}) context = { 'warnings': warnings, 'step': step, 'mdts_form': mdts_form, 'docrules_form': docrules_form, } return render_to_response(template, context, context_instance=RequestContext(request))
def search_type(request, step, template='mdtui/search.html'): """Search Step 1: Select Search MDT @param request: is a Django request object @param step: is a current step name (for template rendering) @param template: is a name of template for this view""" warnings = [] cleanup_indexing_session(request) # Initialising MDT or Docrule form according to data provided valid_call = True required_mdt = True required_docrule = True if request.POST: # Cleaning search session selections cleanup_search_session(request) cleanup_mdts(request) # Checking if docrule or mdt selected try: if request.POST['docrule']: required_mdt = False except KeyError: pass try: if request.POST['mdt']: required_docrule = False except KeyError: pass # Do not process in case docrule and MDT provided try: if request.POST['docrule'] and request.POST['mdt']: valid_call = False warnings.append(MDTUI_ERROR_STRINGS['NO_MDT_NO_DOCRULE']) except KeyError: pass # Rendering forms accordingly mdts_filtered_form = make_mdt_select_form(request.user, required_mdt) mdts_form = mdts_filtered_form(request.POST or None) docrules_filtered_form = make_document_type_select_form( request.user, required_docrule) docrules_form = docrules_filtered_form(request.POST or None) # POST Validation for either docrule OR mdt selected if request.POST and valid_call: if mdts_form.is_valid() and not required_docrule: mdts = None mdt_form_id = None try: mdt_form_id = mdts_form.data["mdt"] except KeyError: pass # CouchDB connection Felt down warn user if mdt_form_id: try: mdt_names = get_mdt_from_search_mdt_select_form( mdt_form_id, mdts_filtered_form) request.session['search_mdt_id'] = mdt_form_id mdts = get_mdts_by_names(mdt_names) docrules_list = mdts['1']['docrule_id'] if not request.user.is_superuser: request.session[ 'search_docrule_ids'] = filter_permitted_docrules( docrules_list, request.user) else: request.session['search_docrule_ids'] = docrules_list except RequestError: warnings.append(MDTUI_ERROR_STRINGS['NO_DB']) if mdts: request.session['mdts'] = mdts if valid_call: return HttpResponseRedirect( reverse('mdtui-search-options')) else: if not MDTUI_ERROR_STRINGS['NO_MDTS'] in warnings: warnings.append(MDTUI_ERROR_STRINGS['NO_MDTS']) if docrules_form.is_valid() and not required_mdt: # If Docrule selected than MDT is not required and MDT's form is valid in fact docrule_form_id = None try: docrule_form_id = docrules_form.data["docrule"] except KeyError: pass if docrule_form_id: request.session['searching_docrule_id'] = docrule_form_id mdts = get_mdts_for_docrule(docrule_form_id) if mdts: request.session['mdts'] = mdts if valid_call: return HttpResponseRedirect( reverse('mdtui-search-options')) else: if not MDTUI_ERROR_STRINGS['NO_MDTS'] in warnings: warnings.append(MDTUI_ERROR_STRINGS['NO_MDTS']) else: # Populating forms with preexisting data if provided mdt_id = None docrule_id = None # Trying to set docrule if previously selected try: docrule_id = request.session['searching_docrule_id'] except KeyError: pass if docrule_id: docrules_form = docrules_filtered_form({'docrule': docrule_id}) # Trying to set mdt if previously selected try: mdt_id = request.session['search_mdt_id'] except KeyError: pass if mdt_id: mdts_form = mdts_filtered_form({'mdt': mdt_id}) context = { 'warnings': warnings, 'step': step, 'mdts_form': mdts_form, 'docrules_form': docrules_form, } return render_to_response(template, context, context_instance=RequestContext(request))