def confirm_delete_view(self, request): from apps.document.repository.document_bulk_delete \ import get_document_bulk_delete doc_ids = request.session.get('_doc_ids') if request.method == 'GET': items_by_table = get_document_bulk_delete().calculate_deleting_count(doc_ids) mdc = ModelClassDictionary() del_count_hash = {mdc.get_model_class_name_hr(t):items_by_table[t] for t in items_by_table if t in mdc.model_by_table} del_count = [(d, del_count_hash[d], False) for d in del_count_hash] del_count = sorted(del_count, key=lambda x: x[0]) del_count.insert(0, ('Documents', len(doc_ids), True)) context = { 'deleting_count': del_count, 'return_url': 'admin:document_softdeletedocument_changelist' } from django.shortcuts import render return render(request, "admin/common/confirm_delete_view.html", context) # POST: actual delete from apps.task.tasks import call_task call_task( task_name='DeleteDocuments', module_name='apps.document.tasks', _document_ids=doc_ids, user_id=request.user.id) from django.http import HttpResponseRedirect return HttpResponseRedirect("../")
def test_mcd_get_model(self): mdc = ModelClassDictionary() doc_class = mdc.model_by_table['document_document'] self.assertIsNotNone(doc_class) self.assertEqual('Document', doc_class.__name__) model_name = mdc.get_model_class_name('document_document') self.assertEqual('Document', model_name) model_name = mdc.get_model_class_name_hr('document_documentfieldvalue') self.assertEqual('Document Field Value', model_name)
def confirm_delete_view(self, request): project_ids = request.session.get('_project_ids') if request.method == 'GET': doc_ids = Document.all_objects.filter( project_id__in=project_ids).values_list('id', flat=True) details = request.GET.get('details') == 'true' del_count = [] if details: from apps.document.repository.document_bulk_delete \ import get_document_bulk_delete items_by_table = get_document_bulk_delete( ).calculate_deleting_count(doc_ids) mdc = ModelClassDictionary() del_count_hash = { mdc.get_model_class_name_hr(t): items_by_table[t] for t in items_by_table if t in mdc.model_by_table } del_count = [(d, del_count_hash[d], False) for d in del_count_hash] del_count = sorted(del_count, key=lambda x: x[0]) del_count.insert(0, ('Documents', len(doc_ids), True)) del_count.insert(0, ('Projects', len(project_ids), True)) context = { 'deleting_count': del_count, 'return_url': 'admin:project_softdeleteproject_changelist', 'details': details } return render( request, "admin/project/softdeleteproject/confirm_delete_view.html", context) # POST: actual delete from apps.task.tasks import _call_task _call_task(task_name='CleanProjects', module_name='apps.project.tasks', _project_ids=project_ids, user_id=request.user.id, delete=True) return HttpResponseRedirect("../")