Example #1
0
 def load_all_changes(self):
     """
     get changes from api, clear listwidget, render them to ui
     """
     data = {"token": self.token, "p_id": self.p_id}
     named_version_only = None
     if self.versionFilterCB.currentIndex() == 0:
         named_version_only = True
     query_string = url_encode({"named_version": named_version_only})
     url_path = f'get_all_changes?{query_string}'
     url = url_join(self.mscolab_server_url, url_path)
     r = requests.get(url, data=data)
     changes = json.loads(r.text)["changes"]
     self.changes.clear()
     for change in changes:
         created_at = datetime.strptime(change["created_at"],
                                        "%Y-%m-%d, %H:%M:%S")
         local_time = utc_to_local_datetime(created_at)
         date = local_time.strftime('%d/%m/%Y')
         time = local_time.strftime('%I:%M %p')
         item_text = f'{change["username"]} made change on {date} at {time}'
         if change["version_name"] is not None:
             item_text = f'{change["version_name"]}\n{item_text}'
         item = QtWidgets.QListWidgetItem(item_text, parent=self.changes)
         item.id = change["id"]
         item.version_name = change["version_name"]
         self.changes.addItem(item)
Example #2
0
 def render_new_message(self, message, scroll=True):
     message_item = MessageItem(message, self)
     list_widget_item = QtWidgets.QListWidgetItem(self.messageList)
     list_widget_item.setSizeHint(message_item.sizeHint())
     self.messageList.addItem(list_widget_item)
     self.messageList.setItemWidget(list_widget_item, message_item)
     if scroll:
         self.messageList.scrollToBottom()
Example #3
0
 def create_list_item(self, text):
     """
     PyQt5 method : Add items in list and add checkbox functionality
     """
     item = QtWidgets.QListWidgetItem(text)
     item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
     item.setCheckState(QtCore.Qt.Checked)
     self.listWidget.addItem(item)
Example #4
0
 def add_projects_to_ui(self, projects):
     logging.debug("adding projects to ui")
     self.listProjects.clear()
     selectedProject = None
     for project in projects:
         project_desc = f'{project["path"]} - {project["access_level"]}'
         widgetItem = QtWidgets.QListWidgetItem(project_desc, parent=self.listProjects)
         widgetItem.p_id = project["p_id"]
         widgetItem.access_level = project["access_level"]
         if widgetItem.p_id == self.active_pid:
             selectedProject = widgetItem
         self.listProjects.addItem(widgetItem)
     if selectedProject is not None:
         self.listProjects.setCurrentItem(selectedProject)
         self.listProjects.itemActivated.emit(selectedProject)
     self.listProjects.itemActivated.connect(self.set_active_pid)
Example #5
0
 def load_users(self):
     # load users to side-tab here
     # make request to get users
     data = {"token": self.token, "p_id": self.p_id}
     url = url_join(self.mscolab_server_url, 'authorized_users')
     r = requests.get(url, data=data)
     if r.text == "False":
         show_popup(self, "Error",
                    "Some error occurred while fetching users!")
     else:
         self.collaboratorsList.clear()
         users = r.json()["users"]
         for user in users:
             item = QtWidgets.QListWidgetItem(
                 f'{user["username"]} - {user["access_level"]}',
                 parent=self.collaboratorsList)
             self.collaboratorsList.addItem(item)
Example #6
0
    def render_new_permission(self, p_id, u_id):
        """
        p_id: project id
        u_id: user id

        to render new permission if added
        """
        data = {
            'token': self.token
        }
        r = requests.get(self.mscolab_server_url + '/user', data=data)
        _json = json.loads(r.text)
        if _json['user']['id'] == u_id:
            project = self.get_recent_project()
            project_desc = f'{project["path"]} - {project["access_level"]}'
            widgetItem = QtWidgets.QListWidgetItem(project_desc, parent=self.listProjects)
            widgetItem.p_id = project["p_id"]
            widgetItem.access_level = project["access_level"]
            self.listProjects.addItem(widgetItem)
        if self.chat_window is not None:
            self.chat_window.load_users()