Exemplo n.º 1
0
 def render(self):
     """
     Возвращает "кусок" javascript кода, который используется для
     отображения самого компонента. За рендер полного javascript
     отвечает метод get_script()
     :rtype: str
     """
     self.pre_render()
     return render_component(self)
Exemplo n.º 2
0
 def render(self):
     """
     Возвращает "кусок" javascript кода, который используется для
     отображения самого компонента. За рендер полного javascript
     отвечает метод get_script()
     :rtype: str
     """
     self.pre_render()
     return render_component(self)
Exemplo n.º 3
0
    def render(self):
        self.store.url = self.store.url or self.url_data

        assert self.store.url or self.action_data, 'Action data is not defined'
        # тонкая настройка self.store
        if not self.store.url and self.action_data:
            self.store.url = get_url(self.action_data)

        self.render_base_config()
        self.render_params()
        return render_component(self)
Exemplo n.º 4
0
    def render(self):
        self.store.url = self.store.url or self.url_data

        assert self.store.url or self.action_data, 'Action data is not defined'
        # тонкая настройка self.store
        if not self.store.url and self.action_data:
            self.store.url = get_url(self.action_data)

        self.render_base_config()
        self.render_params()
        return render_component(self)
Exemplo n.º 5
0
    def render(self):
        """
        Переопределяем рендер дерева для того,
        чтобы модифицировать содержимое его
        панелей и контекстных меню
        """
        if self.action_new:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new)
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new_child)
            self.context_menu_tree.items.append(
                self.context_menu_tree.menuitem_new)

        if self.action_edit:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_edit)
            self.handler_dblclick = self.dblclick_handler

        if self.action_delete:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_delete)

        # контекстное меню прицепляется к гриду только в том случае, если
        # в нем есть хотя бы один пункт
        if self.context_menu_tree.items:
            self.handler_contextmenu = self.context_menu_tree
        if self.context_menu_row.items:
            self.handler_rowcontextmenu = self.context_menu_row

        #======================================================================
        # Настройка top bar
        #======================================================================
        for action, btn in (
            (self.action_new, self.top_bar.add_menu),
            (self.action_edit, self.top_bar.button_edit),
            (self.action_delete, self.top_bar.button_delete),
            (self.action_data, self.top_bar.button_refresh),
        ):
            if not action and btn in self.top_bar.items:
                self.top_bar.items.remove(btn)

        # тонкая настройка self.store
        if not self.url and self.action_data:
            self.url = get_url(self.action_data)

        self.render_base_config()
        self.render_params()
        return render_component(self)
Exemplo n.º 6
0
    def render(self):
        """
        Переопределяем рендер дерева для того,
        чтобы модифицировать содержимое его
        панелей и контекстных меню
        """
        if self.action_new:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new)
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new_child)
            self.context_menu_tree.items.append(
                self.context_menu_tree.menuitem_new)

        if self.action_edit:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_edit)
            self.handler_dblclick = self.dblclick_handler

        if self.action_delete:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_delete)

        # контекстное меню прицепляется к гриду только в том случае, если
        # в нем есть хотя бы один пункт
        if self.context_menu_tree.items:
            self.handler_contextmenu = self.context_menu_tree
        if self.context_menu_row.items:
            self.handler_rowcontextmenu = self.context_menu_row

        #======================================================================
        # Настройка top bar
        #======================================================================
        for action, btn in (
            (self.action_new, self.top_bar.add_menu),
            (self.action_edit, self.top_bar.button_edit),
            (self.action_delete, self.top_bar.button_delete),
            (self.action_data, self.top_bar.button_refresh),
        ):
            if not action and btn in self.top_bar.items:
                self.top_bar.items.remove(btn)

        # тонкая настройка self.store
        if not self.url and self.action_data:
            self.url = get_url(self.action_data)

        self.render_base_config()
        self.render_params()
        return render_component(self)
Exemplo n.º 7
0
    def render(self):
        """
        Переопределяем рендер грида для того,
        чтобы модифицировать содержимое его
        панелей и контекстных меню
        """
        if self.action_new or self.url_new:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new)
            self.context_menu_grid.items.append(
                self.context_menu_grid.menuitem_new)

        if self.action_edit or self.url_edit:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_edit)
            self.handler_dblclick = self.dblclick_handler

        if self.action_delete or self.url_delete:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_delete)

        # контекстное меню прицепляется к гриду только в том случае, если
        # в нем есть хотя бы один пункт
        if self.context_menu_grid.items:
            self.handler_contextmenu = self.context_menu_grid
        if self.context_menu_row.items:
            self.handler_rowcontextmenu = self.context_menu_row

        #======================================================================
        # Настройка top bar
        #======================================================================
        def remove(this):
            if this in self.top_bar.items:
                self.top_bar.items.remove(this)

        # @TODO: Отрефакторить данный метод, чтобы он был не в рендеринге
        if (not self.action_data and not self.url_data
                and self.top_bar.button_refresh in self.top_bar.items):
            remove(self.top_bar.button_refresh)

        if (not self.action_delete and not self.url_delete
                and self.top_bar.button_delete in self.top_bar.items):
            remove(self.top_bar.button_delete)

        if (not self.action_edit and not self.url_edit
                and self.top_bar.button_edit in self.top_bar.items):
            remove(self.top_bar.button_edit)

        if (not self.action_new and not self.url_new
                and self.top_bar.button_new in self.top_bar.items):
            remove(self.top_bar.button_new)

        # тонкая настройка self.store
        if not self.store.url and self.action_data:
            self.store.url = get_url(self.action_data)

        if self.url_data:
            self.store.url = self.url_data

        # Стор может быть пустой
        # assert self.store.url, 'Url for store or action_data is not define'

        if self.allow_paging:
            # Значение self.store.start и так будет равно 0

            # Если store не экземпляр ExtJsonStore,
            # то у него нет атрибута limit
            if hasattr(self.store, 'limit'):
                self.store.limit = (self.store.limit
                                    if self.store.limit > 0 else 25)
            self.bottom_bar = self.paging_bar

        self.render_base_config()
        self.render_params()
        return render_component(self)
Exemplo n.º 8
0
    def render(self):
        """
        Переопределяем рендер грида для того,
        чтобы модифицировать содержимое его
        панелей и контекстных меню
        """
        if self.action_new or self.url_new:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_new)
            self.context_menu_grid.items.append(
                self.context_menu_grid.menuitem_new)

        if self.action_edit or self.url_edit:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_edit)
            self.handler_dblclick = self.dblclick_handler

        if self.action_delete or self.url_delete:
            self.context_menu_row.items.append(
                self.context_menu_row.menuitem_delete)

        # контекстное меню прицепляется к гриду только в том случае, если
        # в нем есть хотя бы один пункт
        if self.context_menu_grid.items:
            self.handler_contextmenu = self.context_menu_grid
        if self.context_menu_row.items:
            self.handler_rowcontextmenu = self.context_menu_row

        #======================================================================
        # Настройка top bar
        #======================================================================
        def remove(this):
            if this in self.top_bar.items:
                self.top_bar.items.remove(this)

        # @TODO: Отрефакторить данный метод, чтобы он был не в рендеринге
        if (not self.action_data and not self.url_data and
                self.top_bar.button_refresh in self.top_bar.items):
            remove(self.top_bar.button_refresh)

        if (not self.action_delete and not self.url_delete and
                self.top_bar.button_delete in self.top_bar.items):
            remove(self.top_bar.button_delete)

        if (not self.action_edit and not self.url_edit and
                self.top_bar.button_edit in self.top_bar.items):
            remove(self.top_bar.button_edit)

        if (not self.action_new and not self.url_new and
                self.top_bar.button_new in self.top_bar.items):
            remove(self.top_bar.button_new)

        # тонкая настройка self.store
        if not self.store.url and self.action_data:
            self.store.url = get_url(self.action_data)

        if self.url_data:
            self.store.url = self.url_data

        # Стор может быть пустой
        # assert self.store.url, 'Url for store or action_data is not define'

        if self.allow_paging:
            # Значение self.store.start и так будет равно 0

            # Если store не экземпляр ExtJsonStore,
            # то у него нет атрибута limit
            if hasattr(self.store, 'limit'):
                self.store.limit = (
                    self.store.limit if self.store.limit > 0 else 25)
            self.bottom_bar = self.paging_bar

        self.render_base_config()
        self.render_params()
        return render_component(self)