Ejemplo n.º 1
0
    def close_session(cls):
        if not Config.getSessionID():
            return

        iface = cls.get_interface('FABLIK_BASE')

        inputVar = iface.create_variable('RequestCloseSession', session_id=Config.getSessionID())

        result = iface.call('closeSession', inputVar)

        if result.ret_code != 0:
            message = MESSAGES.get(result.ret_code, result.ret_message)
            raise Exception(message)
Ejemplo n.º 2
0
    def onRemoveDepartment(self):
        dep_id = self.treeWraper.getCurrentItem('id')
        if not dep_id:
            curr = self._widgets.departmentsTree.currentItem()
            if not curr:
                return
            p = curr.parent()
            p.removeChild(curr)
            return

        yes = self.askQuestion(self.tr('Do you realy want delete this department?'))
        if not yes:
            return

        in_var = self.mgt_interface.create_variable('RequestDeleteDepartment')

        in_var.session_id = Config.getSessionID()
        in_var.department_id = dep_id

        ret = self.mgt_interface.call('deleteDepartment', in_var)

        if ret.ret_code != 0:
            self.errorMessage(ret.ret_message)
            return

        self.informationMessage(self.tr('Department is deleted from database'))

        self.syncTree()
Ejemplo n.º 3
0
    def close_cursor(cls, cursor_obj):
        inputVar = cls.interface.create_variable("RequestCloseCursor")

        inputVar.session_id = Config.getSessionID()
        inputVar.cursor_sid = cursor_obj.get_cursor_sid()

        result = cls.interface.call("closeCursor", inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        cursor_obj.closed = True
Ejemplo n.º 4
0
    def load_interfaces(cls, base_iface):
        inputVar = base_iface.create_variable('RequestGetInterfaces', session_id=Config.getSessionID())

        result = base_iface.call('getInterfaces', inputVar)

        if result.ret_code != 0:
            message = MESSAGES.get(result.ret_code, result.ret_message)
            raise Exception(message)

        if len(result.interface_list) == 0:
            return

        for interface in result.interface_list.interface:
            cls.interfaces[interface.sid] = interface.url
Ejemplo n.º 5
0
    def fetch_cursor(cls, cursor_obj, offset, fetch_count):
        inputVar = cls.interface.create_variable("RequestGetCursorData")

        inputVar.session_id = Config.getSessionID()
        inputVar.cursor_sid = cursor_obj.get_cursor_sid()
        inputVar.offset = offset
        inputVar.fetch_count = fetch_count

        result = cls.interface.call("getCursorData", inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        col_descriptions = cursor_obj.get_col_descriptions()

        return cls.__perform_data(result.row_list, col_descriptions)
Ejemplo n.º 6
0
    def make_cursor(cls, query_sid, **filter_list):
        inputVar = cls.interface.create_variable("RequestCreateCursor")

        inputVar.session_id = Config.getSessionID()
        inputVar.sql_query_sid = query_sid

        for filter_name in filter_list:
            filter_var = cls.interface.create_variable("filter")
            filter_var.name = filter_name
            filter_var.value = filter_list[filter_name]
            inputVar.filter_list.filter.append(filter_var)

        result = cls.interface.call("createCursor", inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        return Cursor(result.cursor_sid, result.row_description)
Ejemplo n.º 7
0
    def onApplyDepartment(self):
        wl = self._widgets

        dep_id = self.treeWraper.getCurrentItem('id')
        dep_name = wl.depNameEdit.text()
        dep_sid = wl.depSIDEdit.text()
        dep_descr = wl.depDescriptionEdit.text()

        if dep_name == '':
            self.errorMessage(self.tr('Departmnent name must be not empty!'))
            return

        if dep_sid == '':
            self.errorMessage(self.tr('Department SID must be not empty'))
            return

        if dep_id:
            in_var = self.mgt_interface.create_variable('RequestUpdateDepartment')
            in_var.department_id = dep_id
        else:
            in_var = self.mgt_interface.create_variable('RequestCreateDepartment')

        in_var.session_id = Config.getSessionID()
        in_var.sid = dep_sid
        in_var.parent_id = self.treeWraper.getCurrentItem('parent_id')
        in_var.name = dep_name
        in_var.description = dep_descr

        if dep_id:
            method = 'updateDepartment'
        else:
            method = 'createDepartment'

        ret = self.mgt_interface.call(method, in_var)

        if ret.ret_code != 0:
            self.errorMessage(ret.ret_message)
            return

        self.informationMessage(self.tr('Department is saved in database'))

        self.syncTree()
Ejemplo n.º 8
0
    def __load_form_by_sid(cls, form_sid, checksum=''):
        iface = Client.get_interface('FABLIK_BASE')
        inputVar = iface.create_variable('RequestGetForm')

        inputVar.session_id = Config.getSessionID()
        inputVar.form_sid = form_sid
        inputVar.checksum = checksum

        result = iface.call('getForm', inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        if result.form_source:
            print 'cache is not found or not valid. Creating...'
            form_source = base64.decodestring(result.form_source)
            f = open(os.path.join(cls.__cache_dir, '%s.ffc'%(form_sid)), 'wb')
            f.write(form_source)
            f.close()

        return result.form_permission
Ejemplo n.º 9
0
    def select(cls, query_sid, **filter_list):
        inputVar = cls.interface.create_variable("RequestExecuteQuery")

        inputVar.session_id = Config.getSessionID()
        inputVar.sql_query_sid = query_sid

        for filter_name in filter_list:
            filter_var = cls.interface.create_variable("filter")
            filter_var.name = filter_name
            filter_var.value = filter_list[filter_name]
            inputVar.filter_list.filter.append(filter_var)

        result = cls.interface.call("executeQuery", inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        col_descriptions = {}
        for col_desc in result.row_description.column_description:
            col_descriptions[col_desc.num] = Column(col_desc.type, col_desc.name)

        return cls.__perform_data(result.row_list, col_descriptions)
Ejemplo n.º 10
0
            LogManager.info('Menu cache %s is not loaded. Details: %s' %(self.__menu_cache_file,e))
        finally:
            if f is not None:
                f.close()

        self.__menu.sort(cmp=my_cmp)
        md5 = hashlib.md5()
        for item in self.__menu:
            item.update_checksum(md5)

        menu_checksum = md5.hexdigest()

        iface = Client.get_interface('FABLIK_BASE')
        inputVar = iface.create_variable('RequestGetMainMenu')

        inputVar.session_id = Config.getSessionID()
        inputVar.checksum = menu_checksum
        inputVar.lang_sid = Config.getLangSid()

        result = iface.call('getMainMenu', inputVar)

        if result.ret_code != 0:
            raise Exception(result.ret_message)

        if len(result.menu_list) == 0:
            LogManager.info('Menu cache is valid. Use it')
            return

        self.__menu = []
        for item in result.menu_list[0]:
            menuitem = MenuItem(item.id, item.help, item.name, item.form_sid, 0, item.parent_id, item.shortcut)