def get_data_length(self):
     this_folder_id = self.this_folder_id
     this_folder = Folder.objects.get(id=this_folder_id)
     self.table_data_length = len(Folder.objects.filter(parent=this_folder)) \
                            + len(Report.objects.filter(parent=this_folder))
     self.parents_data_length = len(get_parents(this_folder))
     self.data_length = self.table_data_length \
                      + self.parents_data_length \
                      + 1 # довжина списку з даними
     return self.data_length
 def test_visitor_can_go_to_parent_links(self):
     # Користувач може перейти по лінках над таблицею
     this_folder = Folder.objects.get(id=self.this_folder_id)
     folders = get_parents(this_folder)
     folders.append(this_folder)
     for folder in folders:
         link_parent_selector = '#parent-folders-navigation'
         link_text            = '%s' % folder
         url_name             = 'folders:folder-contents'
         kwargs               = {'pk': folder.pk}
         self.check_go_to_link(self.this_url, link_parent_selector,
             link_text, url_name=url_name, kwargs=kwargs)
     print('finished: %s' % inspect.stack()[0][3], end=' >> ')
    def get_context_data(self, **kwargs):
        # Материнська тека
        context = super().get_context_data(**kwargs)
        context['folder'] = self.object
        context['parents'] = get_parents(self.object)
        parent_id = self.object.id
        browTabName = 'folders_contents'    # назва таблиці (для сесії і ajax)
        # Беремо з сесії масив параметрів виділеного елемента
        # для даного parent_id:
        selElement = getSelElementFromSession(self.request.session,
                                            browTabName,
                                            parent_id=parent_id)
        selElementModel = selElement.get('model')
        selElementID    = selElement.get('id')
        if selElementModel and selElementID:
            # відомі параметри виділеного рядка
            sel_model_id = {'id': selElementID, 'model': selElementModel}
        else:
            # вперше відвідуємо цю теку
            sel_model_id = {}
        # Готуємо 2D-масив всіх даних таблиці
        # Одночасно шукаємо порядковий номер виділеного рядка
        bta = FolderContentsArray()
        arr, sel_index = bta.get_qs_array(self.qs, sel_model_id)
        cap = bta.get_table_headers()

        # Значення передадуться в шаблон:
        context['browTabName']      = browTabName

        context['selRowIndex']      = sel_index
        context['selElementModel']  = sel_model_id.get('model')
        context['selElementID']     = sel_model_id.get('id')

        context['cap'] = cap    # список заголовків таблиці
        # context['arr'] = arr    # 2D-масив даних таблиці:
        # Одночасно передаємо цей же 2D-масив для обробки js.
        # Дата ще на етапі формування масиву вже перетворена
        # в isoformat, прийнятний для JSON.
        json_arr = json.dumps(arr)
        context['json_arr'] = json_arr

        # Записуємо в сесію:
        selElement['selRowIndex'] = sel_index
        selElement['model'] = sel_model_id.get('model')
        selElement['id'] = sel_model_id.get('id')
        setSelElementToSession(self.request.session,
                                            browTabName,
                                            parent_id=parent_id,
                                            selElement=selElement)
        return context
Esempio n. 4
0
    def get_context_data(self, **kwargs):
        # Материнська тека
        context = super().get_context_data(**kwargs)
        context['folder'] = self.object
        context['parents'] = get_parents(self.object)
        parent_id = self.object.id
        browTabName = 'folders_contents'    # назва таблиці (для сесії і ajax)
        # Беремо з сесії масив параметрів виділеного елемента
        # для даного parent_id:
        selElement = getSelElementFromSession(self.request.session,
                                            browTabName,
                                            parent_id=parent_id)
        selElementModel = selElement.get('model')
        selElementID    = selElement.get('id')
        if selElementModel and selElementID:
            # відомі параметри виділеного рядка
            sel_model_id = {'id': selElementID, 'model': selElementModel}
        else:
            # вперше відвідуємо цю теку
            sel_model_id = {}
        # Готуємо 2D-масив всіх даних таблиці
        # Одночасно шукаємо порядковий номер виділеного рядка
        bta = FolderContentsArray()
        arr, sel_index = bta.get_qs_array(self.qs, sel_model_id)
        cap = bta.get_table_headers()

        # Значення передадуться в шаблон:
        context['browTabName']      = browTabName

        context['selRowIndex']      = sel_index
        context['selElementModel']  = sel_model_id.get('model')
        context['selElementID']     = sel_model_id.get('id')

        context['cap'] = cap    # список заголовків таблиці
        # context['arr'] = arr    # 2D-масив даних таблиці:
        # Одночасно передаємо цей же 2D-масив для обробки js.
        # Дата ще на етапі формування масиву вже перетворена
        # в isoformat, прийнятний для JSON.
        json_arr = json.dumps(arr)
        context['json_arr'] = json_arr

        # Записуємо в сесію:
        selElement['selRowIndex'] = sel_index
        selElement['model'] = sel_model_id.get('model')
        selElement['id'] = sel_model_id.get('id')
        setSelElementToSession(self.request.session,
                                            browTabName,
                                            parent_id=parent_id,
                                            selElement=selElement)
        return context
 def test_get_parents(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     r1 = DummyFolder().create_dummy_report(parent=root)
     r2 = DummyFolder().create_dummy_report(parent=f2)
     r3 = DummyFolder().create_dummy_report(parent=f3)
     self.assertEqual(get_parents(root), [])
     self.assertEqual(get_parents(f2), [root])
     self.assertEqual(get_parents(f3), [root, f2])
     self.assertEqual(get_parents(r1), [root])
     self.assertEqual(get_parents(r2), [root, f2])
     self.assertEqual(get_parents(r3), [root, f2, f3])
 def test_get_parents(self):
     root = DummyFolder().create_dummy_root_folder()
     f2 = DummyFolder().create_dummy_folder(parent=root)
     f3 = DummyFolder().create_dummy_folder(parent=f2)
     r1 = DummyFolder().create_dummy_report(parent=root)
     r2 = DummyFolder().create_dummy_report(parent=f2)
     r3 = DummyFolder().create_dummy_report(parent=f3)
     self.assertEqual(get_parents(root), [])
     self.assertEqual(get_parents(f2), [root])
     self.assertEqual(get_parents(f3), [root, f2])
     self.assertEqual(get_parents(r1), [root])
     self.assertEqual(get_parents(r2), [root, f2])
     self.assertEqual(get_parents(r3), [root, f2, f3])