Example #1
0
    def __create(self):
        '''
            создание нового объекта. Передает с сигналом только что созданный объект Entity
        '''
        
        #обработка полей
        list_fields = self.__getFields()
        #обработка тегов
        list_tags = self.__getTags()  
        list_entityes = []      
        if self._object_type == SystemInfo.entity_link_type:
            list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name,
                                            list_tags=list_tags,list_fields=list_fields,
                                            notes=self._edit_description.text())) #добавить дату создания
        else:
            files_names = self._edit_path.text()
            print(files_names)
            #files_names = cleareExtraSpace(files_names)
            list_files = files_names.split(';')
            list_files_names=[]
            for file_name in list_files: # убираются лишнии пробелы в начале и конце строки. Если пользователь вводил файлы вручную
                list_files_names.append(file_name.strip())

            count_files = len(list_files_names)
            
            
#            self.setDisabled(1)
            progress_window = QtGui.QProgressDialog(self)
#            progress_window.setWindowModality(1)
            progress_window.setMinimum(0)
            progress_window.setMaximum(99)
            progress_window.show()
            self.connect(progress_window,QtCore.SIGNAL('canceled()'),self.__stoped)
            d_progress = 100/count_files
            progress = 0
            for file_path in list_files_names:
                progress_window.setValue(progress)
                QtGui.QApplication.processEvents()
                file_repo_path = self.__splitFileByRepo(file_path)
                print(self._path_to_repo)
                print('file_repo_path',file_repo_path)
                list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name,
                                            list_tags=list_tags,list_fields=list_fields,
                                            notes=self._edit_description.text(),file_path=file_repo_path))
                print('progress---',progress)
                print('dprogress---',d_progress)
                
                progress+=d_progress
                progress_window.setValue(progress)
                QtGui.QApplication.processEvents()
#            progress_window.setWindowModality(0)    
            print('deleting progress window')
            del(progress_window)
        print('the lenght outputting signal is -',len(list_entityes))
        self.emit(QtCore.SIGNAL('createEntity(list_entityes)'),list_entityes)
        self.__canceled()
Example #2
0
    def __update(self):
        '''
            модификация сущности.
        '''
        list_fields= self.__getFields()
        list_tags= self.__getTags()
        
        entity = EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._entity.object_type,
                                            user_name=self._user_repo.name,file_path=self._entity.file_path, 
                                            list_tags=list_tags,list_fields=list_fields,
                                            id=self._entity.id)

        self.emit(QtCore.SIGNAL('updateEntity(list_entityes)'),(self._entity,entity))    
        self.__canceled()     
Example #3
0
 def __indexingFile(self):
     '''
         пометка файла метоинформацией. создается запись о файле в БД
     '''
     print('addFile')
     row=self._table.currentIndex().row()
     index = self._table.model().index(row,0)
     file_path = self._table.model().data(index)
     if not file_path==None:
         file_path = self._path_to_repo + os.path.sep + file_path 
         entity = EntityManager.createEntity(entity_type=SystemInfo.entity_file_type, user_name=self._user_repo, file_path=file_path)
         self.emit(QtCore.SIGNAL('indexingFile(entity)'),entity)
     else:
         self.info_window.setText('''не забываем выбирать файл
         ''')
         self.info_window.show()
         print('не забываем выбирать файл')
Example #4
0
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        
        #self._table = QtGui.QTableView(self)
        self._table = QtGui.QTreeView(self)
        self.button = QtGui.QPushButton('нажми что ли',self)
        vbox_layout = QtGui.QVBoxLayout()
        vbox_layout.addWidget(self._table)
        vbox_layout.addWidget(self.button)
        self.setLayout(vbox_layout)
        #list_string= QtCore.QString()
        self._entity_manager = EntityManager('/tmp/tmp')

            
        
        self.list_tag = ['tag1','tag2','tag3']
#        for tag in self._entity_manager.getListTags():
#            self.list_tag.append(tag[0])
        
        self.list_entityes = [] 
        
        for file in self._entity_manager.searchEntityBySQL('SELECT file_path FROM entity'):
            self.list_entityes.append(file[0])
        
        
        
        
        
        self.model = TagViewModel(self.list_tag)
        self.model = FieldViewModel(self.list_tag)
        
        #self.model.rowCount()
        self._table.setModel(self.model)
        self.connect(self.button,QtCore.SIGNAL('clicked()'),self.tmp)
        self.connect(self._table,QtCore.SIGNAL('clicked(QModelIndex)'),self.tmp2)
        
        label = QtGui.QLabel()
        label.setText('asdfasdf')
        header = QtGui.QHeaderView(QtCore.Qt.Vertical,label)
Example #5
0
    def __create(self):
        '''
            создание нового объекта. Передает с сигналом только что созданный объект Entity
        '''
        
        #обработка полей
        try:
            list_fields = self.__getFields()
        #обработка тегов
            list_tags = self.__getTags()
        except Exception as error:
            self.info_window.setText(str('''Ошибка синтаксиса. "имя = значение" дложно быть в одной строке.
Возможно перепутали поле "теги" с полем "поля".
            '''))
            self.info_window.show()
            return  
        list_entityes = []      
        if self._object_type == SystemInfo.entity_link_type:
            list_entityes.append(EntityManager.createEntity(title=self._edit_title.text(),entity_type=self._object_type,user_name=self._user_repo.name,
                                            list_tags=list_tags,list_fields=list_fields,
                                            notes=self._edit_description.text())) #добавить дату создания
        else:
            dir_path = self._edit_path_into_repo.text()
            if self.__isRepo(dir_path):
                if not self._edit_path.text()=='':
                    files_names= self._edit_path.text()
                    list_files = files_names.split(';')
                    progress_window = QtGui.QProgressDialog(self)
                     
                    progress_window.setMinimum(0)
                    progress_window.setMaximum(99)
                    progress_window.show()
                    count_files = len(list_files)
                    d_progress = 99/count_files
                    progress = 0    
                
                    for file_path in list_files: # убираются лишнии пробелы в начале и конце строки. Если пользователь вводил файлы вручную
                        print(file_path
                              )
                        if not self.__isRepo(os.path.split(file_path)[0]):
                            print('файл находится вне хранилищая... идет копирование')
                            file_path_copy = os.path.join(dir_path,os.path.split(file_path)[1])
                            print('file_path_copy',file_path_copy)
                            if not os.path.exists(file_path_copy):
                                try:
                                    shutil.copyfile(file_path, file_path_copy)
                                except IOError:
                                    self.info_window.setText(''' не найден копируемый файл:''' + file_path+ '''
Проверьте правильность пути к файлу.                                    ''')
                                    self.info_window.show()
                                    progress_window.close()
                                    return
                            file_path = self.__splitDirPath(file_path_copy)
                            print('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'),file_path_copy
                            print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',file_path)    
                            print('cccccccccccccccccccccccccccccccccccc',self._path_to_repo)
                        else:
                            print('добавляемый файл находится в хранилище')
                            file_path_copy = file_path
                            file_path = self.__splitDirPath(file_path_copy)
                            print('file_path_copy',file_path_copy)
                        print('file_path',file_path)
                        entity = EntityManager.createEntity(title=self._edit_title.text(),
                                                   entity_type=self._object_type,
                                                   user_name=self._user_repo.name,
                                                   file_path = file_path,
                                                   list_tags=list_tags,
                                                   list_fields=list_fields,
                                                   notes=self._edit_description.text()) #добавить дату создания
             
                        list_entityes.append(entity)
                        progress+=d_progress
                        print(progress)
                        progress_window.setValue(int(progress))
                        QtGui.QApplication.processEvents()
                    progress_window.close()
#                    progress+=d_progress
#                    print(progress)
#                    progress_window.setValue(int(progress))
                 
                else:
                    self.info_window.setText('''Не выбрано ни одного файла для копирвоания''')
                    self.info_window.show()
                #    print('епт.. файл выбери!')
            else:
                self.info_window.setText('''Выбранная директория не является хранилищем''')
                self.info_window.show()
#        for entity in list_entityes:
#            print('file_path',entity.file_path)
        index = 0
        for entity in list_entityes:
            print('entity file path' + str(index) + ' ',entity.file_path)
            index +=1
        self.emit(QtCore.SIGNAL('createEntity(list_entityes)'),list_entityes)
        self.close()
Example #6
0
class MyWidget(QtGui.QWidget):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        
        #self._table = QtGui.QTableView(self)
        self._table = QtGui.QTreeView(self)
        self.button = QtGui.QPushButton('нажми что ли',self)
        vbox_layout = QtGui.QVBoxLayout()
        vbox_layout.addWidget(self._table)
        vbox_layout.addWidget(self.button)
        self.setLayout(vbox_layout)
        #list_string= QtCore.QString()
        self._entity_manager = EntityManager('/tmp/tmp')

            
        
        self.list_tag = ['tag1','tag2','tag3']
#        for tag in self._entity_manager.getListTags():
#            self.list_tag.append(tag[0])
        
        self.list_entityes = [] 
        
        for file in self._entity_manager.searchEntityBySQL('SELECT file_path FROM entity'):
            self.list_entityes.append(file[0])
        
        
        
        
        
        self.model = TagViewModel(self.list_tag)
        self.model = FieldViewModel(self.list_tag)
        
        #self.model.rowCount()
        self._table.setModel(self.model)
        self.connect(self.button,QtCore.SIGNAL('clicked()'),self.tmp)
        self.connect(self._table,QtCore.SIGNAL('clicked(QModelIndex)'),self.tmp2)
        
        label = QtGui.QLabel()
        label.setText('asdfasdf')
        header = QtGui.QHeaderView(QtCore.Qt.Vertical,label)
        
        
        
        #self._table.setVerticalHeader(header)
        
        
    def tmp(self):
#        self.model.setRowCount(self.index)
#        self.index+=1
        pass
        
    def tagCount(self):
        return len(self.list_tag)
    def tmp2(self,index):
        row = index.row()
        if row<self.tagCount():
            print('tag')
            selected_tag = self.model.item_data(index)
            request = "SELECT * FROM tag WHERE name='"+selected_tag+"'" 
            
            print(request)
            self.list_tag = self._entity_manager.getListTags(request)
            #self.model.selectedItem(self.model.item_data(index))
        else:
            print('entitye')
#        #if row.data.
        pass