Пример #1
0
    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)
Пример #3
0
    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("../")