Esempio n. 1
0
    def save(self, signal_dic):
        file = signal_dic[defaults._signal_file_key_]
        asset = asset_core.string_to_asset(
            signal_dic[defaults._signal_asset_key_])
        filename = os.path.basename(file)
        filename = filename.split('.')[0]
        if filename == folder(asset).work_name_template:
            version = folder(asset).version_from_file(file)
            if version.isdigit():
                asset.version = prefs.asset(asset).software.new_version(
                    version=version)
                time.sleep(1)
                try:
                    im_file = prefs.asset(asset).software.image
                    screen_tools.screen_shot_current_screen(im_file)
                except:
                    logger.critical(str(traceback.format_exc()))

                # Try refreshing the ui
                try:
                    send_signal.refresh_signal()
                    logger.info('{} saved ({})'.format(file, asset.software))
                    send_signal.save_signal()
                    stats().add_xp(2)
                    stats().add_version(asset)
                except:
                    pass
Esempio n. 2
0
 def create_user(self):
     user_name = self.ui.user_name_lineEdit.text()
     promotion = self.ui.class_comboBox.currentText()
     email = self.ui.user_email_lineEdit.text()
     full_name = self.ui.full_name_lineEdit.text()
     password = self.ui.password_lineEdit.text()
     admin = self.ui.admin_checkBox.isChecked()
     if not self.check_confirm():
         logger.error("Passwords doesn't matches...")
     elif not self.image_file:
         logger.error("Please choose an avatar")
     else:
         QApplication.processEvents()
         self.ui.create_user_button.setText('Checking email...')
         QApplication.processEvents()
         if self.confirm_email(user_name, email, full_name):
             QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
             QApplication.processEvents()
             self.ui.create_user_button.setText('Creating user...')
             QApplication.processEvents()
             if self.site.create_user(user_name, promotion, email, password,
                                      admin, full_name):
                 QApplication.processEvents()
                 stats(user_name).create_user(self.image_file)
                 QApplication.processEvents()
                 QApplication.restoreOverrideCursor()
                 QApplication.processEvents()
                 self.ui.create_user_button.setText('Created !')
                 QApplication.processEvents()
                 time.sleep(1)
                 QApplication.processEvents()
                 prefs.set_user(user_name)
                 self.accept()
Esempio n. 3
0
def rebuild_work_stats():
    project_dic = project.read_project()
    asset_version_list = []
    stats().reset_versions_count()

    for domain in project_dic.keys():
        for category in project_dic[domain].keys():
            for name in project_dic[domain][category].keys():
                for stage in project_dic[domain][category][name].keys():
                    asset = asset_core.asset(domain=domain,
                                             category=category,
                                             name=name,
                                             stage=stage)
                    for variant in prefs().asset(asset).stage.variants:
                        if variant and variant != 'None':
                            asset.variant = variant
                            for software in prefs().asset(
                                    asset).stage.softwares:
                                asset.software = software
                                version_list = prefs().asset(
                                    asset).software.versions
                                for version in version_list:
                                    if version != '0000':
                                        asset.version = version
                                        if prefs().asset(
                                                asset
                                        ).software.version_user == prefs(
                                        ).user:
                                            asset_version_list.append(asset)
                                            stats().add_version(asset)
Esempio n. 4
0
 def change_avatar(self):
     options = QFileDialog.Options()
     fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "",
                                               "All Files (*);;Python Files (*.py)", options=options)
     if fileName:
         if fileName.split('.')[-1].upper() == 'PNG' or fileName.split('.')[-1].upper() == 'JPG' or fileName.split('.')[-1].upper() == 'JPEG':
             stats().add_avatar(fileName)
             self.refresh_widget()
         else:
             logger.warning('Please select a valid image !')
Esempio n. 5
0
    def fill_ui(self):
        self.ui.room_button_name_label.setText(self.context)

        if self.context == defaults._chat_general_:
            image = defaults._chat_home_
        else:
            if self.context in prefs.site.users:
                image = stats(self.context).get_avatar()
            else:
                image = defaults._chat_no_image_

        self.rounded_pixmap_label(self.ui.room_button_image_label, image)
Esempio n. 6
0
def get_save_stats():
    versions_dic = stats().get_versions()
    design_saves = versions_dic[defaults._design_]
    geo_saves = versions_dic[defaults._geo_]
    rig_saves = versions_dic[defaults._rig_]
    texturing_saves = versions_dic[defaults._texturing_]
    hair_saves = versions_dic[defaults._hair_]
    shading_saves = versions_dic[defaults._shading_]
    return [
        design_saves, geo_saves, rig_saves, texturing_saves, hair_saves,
        shading_saves
    ]
Esempio n. 7
0
 def refresh_widget(self):
     self.ui.user_name_label.setText(pref.user)
     user_image = stats(pref.user).get_avatar()
     user_promotion = pref.promotion
     is_admin = pref.admin
     if is_admin:
         self.ui.admin_image_label.setVisible(1)
         self.ui.admin_image_label.setPixmap(
             QtGui.QPixmap(defaults._key_icon_).scaled(16, 16, QtCore.Qt.KeepAspectRatio,
                                                       QtCore.Qt.SmoothTransformation))
     else:
         self.ui.admin_image_label.setVisible(0)
         self.ui.admin_image_label.setPixmap(QtGui.QPixmap(''))
     self.ui.promotion_label.setText(user_promotion)
     level = stats(pref.user).get_level()
     xp = float(stats(pref.user).get_xp())
     self.ui.user_image_pushButton.setIconSize(QtCore.QSize(64, 64))
     self.ui.user_image_pushButton.setIcon(QtGui.QIcon(user_image))
     self.round_image(self.ui.user_image_pushButton, user_image)
     self.ui.level_label_number.setText(level)
     self.ui.xp_progressBar.setValue(xp)
     self.check_opened_tickets()
Esempio n. 8
0
def show_work_stats():
    all_versions = get_all_versions()
    versions_dic = stats().get_versions()

    design_percent = (versions_dic[defaults._design_] / all_versions) * 100
    geo_percent = (versions_dic[defaults._geo_] / all_versions) * 100
    rig_percent = (versions_dic[defaults._rig_] / all_versions) * 100
    hair_percent = (versions_dic[defaults._hair_] / all_versions) * 100
    texturing_percent = (versions_dic[defaults._texturing_] /
                         all_versions) * 100
    shading_percent = (versions_dic[defaults._shading_] / all_versions) * 100

    return [
        design_percent, geo_percent, rig_percent, hair_percent,
        texturing_percent, shading_percent
    ]
Esempio n. 9
0
    def add_user_view(self, user):
        if (user not in list(
                self.users_views_dic.keys())) and (user != self.user) and (
                    user != self.msg_dic[defaults._chat_user_]):
            user_label = QtWidgets.QLabel()

            user_label = QtWidgets.QLabel()
            user_label.setMinimumSize(QtCore.QSize(26, 26))
            user_label.setMaximumSize(QtCore.QSize(26, 26))
            user_label.setText("")
            user_label.setAlignment(QtCore.Qt.AlignCenter)

            self.round_image_label(user_label, stats(user).get_avatar())
            self.users_views_dic[user] = user_label
            self.users_views_layout.addWidget(user_label)

        self.toggle_users_view_layout()
Esempio n. 10
0
def show_stats():
    all_events = wall().get_all_keys()
    events_dic = wall().open_wall_file()

    stages_list = list()

    for event in all_events:
        if events_dic[event][defaults._creation_user_key_] == prefs(
        ).user and events_dic[event][
                defaults._wall_id_key_] == defaults._wall_publish_event_:
            asset_string = events_dic[event][defaults._asset_key_]
            asset = asset_core.string_to_asset(asset_string)
            if asset.stage and asset.stage != 'None':
                stages_list.append(asset.stage)

    all_versions = get_all_versions() + len(stages_list)
    versions_dic = stats().get_versions()

    design_occu = stages_list.count(defaults._design_)
    design_percent = (
        (design_occu + versions_dic[defaults._design_]) / all_versions) * 100
    geo_occu = stages_list.count(defaults._geo_)
    geo_percent = (
        (geo_occu + versions_dic[defaults._geo_]) / all_versions) * 100
    rig_occu = stages_list.count(defaults._rig_)
    rig_percent = (
        (rig_occu + versions_dic[defaults._rig_]) / all_versions) * 100
    hair_occu = stages_list.count(defaults._hair_)
    hair_percent = (
        (hair_occu + versions_dic[defaults._hair_]) / all_versions) * 100
    texturing_occu = stages_list.count(defaults._texturing_)
    texturing_percent = (
        (texturing_occu + versions_dic[defaults._texturing_]) /
        all_versions) * 100
    shading_occu = stages_list.count(defaults._shading_)
    shading_percent = (
        (shading_occu + versions_dic[defaults._shading_]) / all_versions) * 100

    return [
        design_percent, geo_percent, rig_percent, hair_percent,
        texturing_percent, shading_percent
    ]
Esempio n. 11
0
    def connected_functions(self):
        self.ui.chat_room_add_file_pushButton.setIcon(
            QtGui.QIcon(defaults._attachment_icon_))
        self.ui.chat_room_thumb_pushButton.setIcon(
            QtGui.QIcon(defaults._thumb_icon_))
        self.ui.chat_send_pushButton.setIcon(
            QtGui.QIcon(defaults._send_message_icon_))
        self.ui.chat_emoji_pushButton.setIcon(
            QtGui.QIcon(defaults._emoji_icon_))
        self.ui.chat_message_lineEdit.textChanged.connect(self.analyse_text)
        self.ui.chat_room_thumb_pushButton.clicked.connect(self.send_thumb)
        self.ui.chat_room_close_quote_pushButton.clicked.connect(
            self.remove_quote)

        if self.context == defaults._chat_general_:
            image = defaults._chat_home_
        else:
            if self.context in prefs.site.users:
                image = stats(self.context).get_avatar()
            else:
                image = defaults._chat_no_image_

        self.rounded_pixmap_label(self.ui.chat_room_image_label, image)

        self.ui.chat_room_add_file_pushButton.clicked.connect(self.attach_file)
        self.ui.chat_room_remove_file_pushButton.setIcon(
            QtGui.QIcon(defaults._kill_process_icon_))
        self.ui.chat_room_close_quote_pushButton.setIcon(
            QtGui.QIcon(defaults._kill_process_icon_))

        self.ui.chat_room_remove_file_pushButton.clicked.connect(
            self.remove_file)
        self.ui.chat_send_pushButton.clicked.connect(self.send_msg)
        self.ui.chat_emoji_pushButton.clicked.connect(self.show_emoji_keyboard)
        self.send_sc = QtWidgets.QShortcut(
            QtGui.QKeySequence(QtCore.Qt.Key_Return), self)
        self.send_sc.activated.connect(self.send_msg)
        area_scroll_bar = self.ui.scrollArea.verticalScrollBar()
        area_scroll_bar.rangeChanged.connect(
            lambda: area_scroll_bar.setValue(area_scroll_bar.maximum()))
        self.ui.chat_room_context_label.setText(self.context)
Esempio n. 12
0
    def __init__(self, user, text, file):
        super(Main, self).__init__()
        # Build the ui from ui converted file
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.user = user
        self.file = file
        if not self.file:
            self.ui.chat_file_pushButton.hide()
        self.user_image = stats(self.user).get_avatar()
        self.text = text
        if not self.text or self.text == '':
            self.ui.message_widget_label.hide()
        self.setup_widget()

        self.shadow = QtWidgets.QGraphicsDropShadowEffect()
        self.shadow.setBlurRadius(8)
        self.shadow.setColor(QtGui.QColor(0, 0, 0, 180))
        self.shadow.setXOffset(0)
        self.shadow.setYOffset(0)
        self.setGraphicsEffect(self.shadow)
Esempio n. 13
0
    def __init__(self, user):
        super(user_widget, self).__init__()

        self.main_layout = QtWidgets.QVBoxLayout(self)
        self.setLayout(self.main_layout)

        self.user_image_label = QtWidgets.QLabel()
        self.user_image_label.setMinimumSize(QtCore.QSize(60, 60))
        self.user_image_label.setMaximumSize(QtCore.QSize(60, 60))

        self.rounded_pixmap_label(self.user_image_label,
                                  stats(user).get_avatar())

        self.main_layout.addWidget(self.user_image_label)

        self.setMaximumSize(QtCore.QSize(4000, 60))
        self.setMinimumSize(QtCore.QSize(60, 60))

        self.main_layout.setContentsMargins(0, 5, 5, 5)

        if user == prefs.user:
            self.setLayoutDirection(QtCore.Qt.RightToLeft)
            self.main_layout.setContentsMargins(5, 5, 0, 5)
Esempio n. 14
0
    def create(self, in_out=None, batch=None):
        # Call the "stats" wizard object
        # To interact with it
        stats_prefs = stats()

        print('current_task:Creating {} - {} - {} - {} - {}'.format(
            self.domain, self.category, self.name, self.stage, self.variant))
        print('current_status:Starting...')
        print('percent:0')
        sys.stdout.flush()

        # Check if a category was given to the "asset" class
        # Check if a name was given to the "asset" class
        # Check if a stage was given to the "asset" class
        # Check if a variant was given to the "asset" class
        # Then create the asked parts, if parts are none,
        # the parent part is created, recursively
        if self.category != None and\
                self.name == None and\
                self.stage == None and\
                self.variant == None:

            # Create and check the return in the same line
            if build.create_category(self):

                # Add "xp" to the user using the "stats" wizard module
                stats_prefs.add_xp(20)

                # Return the succeed of the "build" wizard function
                print('percent:100')
                sys.stdout.flush()
                time.sleep(0.1)
                return 1
            else:
                return 0
        elif self.name != None and\
                self.stage == None and\
                self.variant == None:

            # Create and check the return in the same line
            if build.create_name(self, in_out):

                # Add "xp" to the user using the "stats" wizard module
                stats_prefs.add_xp(20)

                # Return the succeed of the "build" wizard function
                print('percent:100')
                sys.stdout.flush()
                time.sleep(0.1)
                return 1
            else:
                return 0
        elif self.stage != None and\
                self.variant == None:

            # Create and check the return in the same line
            if build.create_stage(self):

                # Assign the default variant (main) to the asset
                self.variant = defaults._main_variant_

                # Create the variant and check the return in the same line
                if build.create_variant(self):

                    # Add "xp" to the user using the "stats" wizard module
                    stats_prefs.add_xp(20)

                    # Return the succeed of the "build" wizard function
                    print('percent:100')
                    sys.stdout.flush()
                    time.sleep(0.1)
                    return 1
                else:
                    return 0
            else:
                return 0
        elif self.variant != None:

            # Create and check the return in the same line
            if build.create_variant(self):

                # Add "xp" to the user using the "stats" wizard module
                stats_prefs.add_xp(20)

                # Return the succeed of the "build" wizard function
                print('percent:100')
                sys.stdout.flush()
                time.sleep(0.1)
                return 1
            else:
                return 0
        else:
            return 0
Esempio n. 15
0
def get_all_versions():
    versions_dic = stats().get_versions()
    all_versions = 0
    for stage in versions_dic.keys():
        all_versions += versions_dic[stage]
    return all_versions