Ejemplo n.º 1
0
    def __init__(self, app):
        super().__init__()
        self.app = app
        self.showMaximized()
        self.image_service = ImageService()
        self.storage_service = StorageService()
        self.stacked_widget = QStackedWidget()
        self.stacked_widget.showMaximized()

        self.main_widget = MainWidget(self)
        self.settings_widget = SettingsWidget(self, Settings())
        self.pattern_widget = PatternWidget(self, Pattern())

        self.stacked_widget.addWidget(self.main_widget)
        self.stacked_widget.addWidget(self.pattern_widget)
        self.stacked_widget.addWidget(self.settings_widget)

        self.setCentralWidget(self.stacked_widget)

        self.selected_pattern_name = None
        self.selected_settings_name = None
        self.pattern = None
        self.settings = None
        self._create_actions()
        self._set_menu_bar()
        self._set_tool_bar()
        self.errors_color = QColor(255, 0, 0)
Ejemplo n.º 2
0
 def load_settings(self, settings_name):
     settings = None
     settings_path = os.path.join(SETTINGS_DIR, settings_name)
     if os.path.exists(settings_path):
         with open(settings_path, 'r') as f:
             json_dict = json.load(f)
             image_processes = [
                 ImageProcess.from_json(j)
                 for j in json_dict[IMAGE_PROCESSES]
             ]
             settings = Settings(settings_name, image_processes)
     return settings
Ejemplo n.º 3
0
 def _new_settings_action_handler(self):
     file_dialog = QFileDialog(self)
     file_dialog.setNameFilters(["All Files (*)", "Images (*.png *.jpg)"])
     file_dialog.selectNameFilter("Images (*.png *.jpg)")
     if file_dialog.exec_():
         filename = file_dialog.selectedFiles()[0]
         with wait_cursor():
             image_orig = cv2.imread(filename, cv2.IMREAD_COLOR)
             self.stacked_widget.removeWidget(self.settings_widget)
             self.settings_widget = SettingsWidget(self, Settings())
             self.stacked_widget.addWidget(self.settings_widget)
             self.stacked_widget.setCurrentWidget(self.settings_widget)
             self.settings_widget.setImage(image_orig)
             self.settings_widget.update()
Ejemplo n.º 4
0
 def __init__(self):
     """
     Initialize Employee class
     """
     self.model = {
         "name":
         "employees",
         "id":
         "employee_id",
         "fields":
         ("employee_id", "salesrep", "fullname", "email", "country", "sas"),
         "types": ("INTEGER PRIMARY KEY NOT NULL", "TEXT", "TEXT", "TEXT",
                   "TEXT", "INTEGER DEFAULT 0")
     }
     self._employee = {}
     self.q = Query()
     if not self.q.exist_table(self.model["name"]):
         sql = self.q.build("create", self.model)
         self.q.execute(sql)
     self.s = Settings()
     if rules.check_settings(self.s.settings):
         self.load(self.s.settings["usermail"])
Ejemplo n.º 5
0
async def updateSettings(request):
    params = await request.json()
    settings = Settings(params['frameBufferSize'], params['videoPath'])
    db.update_settings(settings)
    return web.Response(status=201)
Ejemplo n.º 6
0
 def setUp(self):
     self.storage_service = StorageService()
     self.pattern_name = 'test_pattern'
     self.pattern = self.create_pattern(self.pattern_name)
     self.settings_name = 'test_settings'
     self.settings = Settings(self.settings_name)
Ejemplo n.º 7
0
 def get_settings(self) -> Settings:
     data = self.__settings.get(doc_id=0)
     return Settings(data['frame_buffer_size'], data['video_path'])
Ejemplo n.º 8
0
def save_setting(key, value):
    Settings().update(key=key, value=value)
Ejemplo n.º 9
0
    def __init__(self, parent=None):
        """
        Initialize MainWindow class
        """
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        thread = QThread()
        thread.currentThread().setObjectName(__appname__)
        configfn.check_config_folder()  # Check appdata folder in users home

        self.textWorkdate.setText(datetime.date.today().isoformat()
                                  )  # initialize workdate to current date

        self._archivedOrderlines = OrderLine()  # Initialize Detail object
        self._archivedVisits = Visit()  # Initialize Visit object
        self._contacts = Contact()  # Initialize Contact object
        self._customers = Customer()  # Initialize Customer object
        self._employees = Employee()  # Initialize Employee object
        self._orderLines = OrderLine()
        self._products = Product()  # Initialize Product object
        self._reports = Report()  # Initialize Report object
        self._settings = Settings()  # Initialize Settings object
        self._visits = Visit()

        self.buttonArchiveContacts.clicked.connect(self.archive_contacts)
        self.buttonArchiveCustomer.clicked.connect(self.archive_customer)
        self.buttonArchiveVisit.clicked.connect(self.archive_visit)

        self.buttonCreateContact.clicked.connect(self.create_contact)
        self.buttonCreateCustomer.clicked.connect(self.create_customer)
        self.buttonCreateReport.clicked.connect(self.create_report)
        self.buttonCreateVisit.clicked.connect(self.load_visit)

        self.buttonGetCustomers.clicked.connect(self.get_customers)
        self.buttonGetPricelist.clicked.connect(self.get_pricelist)

        self.toolButtonArchiveSettings.clicked.connect(self.archive_settings)
        self.toolButtonCustomer.clicked.connect(self.show_page_customer)
        self.toolButtonCustomers.clicked.connect(self.show_page_customers)
        self.toolButtonCustomerVisits.clicked.connect(
            self.show_page_customer_visits)
        self.toolButtonExit.clicked.connect(self.app_exit)
        self.toolButtonInfo.clicked.connect(self.show_page_info)
        self.toolButtonPricelist.clicked.connect(self.show_page_pricelist)
        self.toolButtonReport.clicked.connect(self.show_page_report)
        self.toolButtonReports.clicked.connect(self.show_page_reports)
        self.toolButtonSettings.clicked.connect(self.show_page_settings)
        self.toolButtonCustomerVisit.clicked.connect(self.show_page_visit)

        self.toolButtonDeleteSalesData.clicked.connect(self.zero_database)
        self.toolButtonExportDatabase.clicked.connect(self.data_export)
        self.toolButtonImportCsvData.clicked.connect(
            self.show_csv_import_dialog)
        self.toolButtonImportDatabase.clicked.connect(self.data_import)

        self.widgetCustomers.currentItemChanged.connect(
            self.on_customer_changed)
        self.widgetCustomers.itemDoubleClicked.connect(
            self.on_customer_double_clicked)

        self.widgetArchivedVisits.currentItemChanged.connect(
            self.on_visit_changed)
        self.widgetArchivedVisits.setColumnHidden(0, True)

        self.widgetArchivedOrderLines.setColumnWidth(0, 30)
        self.widgetArchivedOrderLines.setColumnWidth(1, 30)
        self.widgetArchivedOrderLines.setColumnWidth(2, 100)
        self.widgetArchivedOrderLines.setColumnWidth(3, 150)
        self.widgetArchivedOrderLines.setColumnWidth(4, 60)
        self.widgetArchivedOrderLines.setColumnWidth(5, 40)

        self.widgetCustomers.setColumnHidden(0, True)  # ID
        self.widgetCustomers.setColumnWidth(1, 100)
        self.widgetCustomers.setColumnWidth(2, 100)
        self.widgetCustomers.setColumnWidth(3, 100)
        self.widgetCustomers.setColumnWidth(4, 250)
        self.widgetCustomers.setColumnWidth(5, 60)

        self.widgetPricelist.setColumnWidth(0, 70)
        self.widgetPricelist.setColumnWidth(1, 100)
        self.widgetPricelist.setColumnWidth(2, 150)
        self.widgetPricelist.setColumnWidth(3, 50)
        self.widgetPricelist.setColumnWidth(4, 50)
        self.widgetPricelist.setColumnWidth(5, 50)
        self.widgetPricelist.setColumnWidth(6, 50)
        self.widgetPricelist.setColumnWidth(7, 50)
        self.widgetPricelist.setColumnWidth(8, 50)
        self.widgetPricelist.setColumnWidth(9, 50)
        self.widgetPricelist.setColumnWidth(10, 50)
        self.widgetPricelist.setColumnWidth(11, 50)
        self.widgetPricelist.setColumnWidth(12, 50)

        self.widgetReports.setColumnHidden(0, True)  # ID
        self.widgetReports.setColumnWidth(1, 80)  # rep_date
        self.widgetReports.setColumnWidth(2, 60)  # visits
        self.widgetReports.setColumnWidth(3, 60)  # sale day
        self.widgetReports.setColumnWidth(4, 60)  # demo day
        self.widgetReports.setColumnWidth(5, 100)  # turnover day
        self.widgetReports.setColumnWidth(6, 50)  # km
        # self.widgetReports column 7                # supervisor

        self.widgetReportVisits.setColumnWidth(0, 150)
        self.widgetReportVisits.setColumnWidth(1, 100)
        self.widgetReportVisits.setColumnWidth(2, 100)
        self.widgetReportVisits.setColumnWidth(3, 60)

        self.populate_customer_list()
        self.populate_price_list()

        try:
            cid = self._settings.settings["cust_idx"]
            if self._customers.lookup_by_id(cid):
                try:
                    self.widgetCustomers.setCurrentIndex(
                        self.widgetCustomers.indexFromItem(
                            self.widgetCustomers.findItems(str(
                                self._customers.customer["customer_id"]),
                                                           Qt.MatchExactly,
                                                           column=0)[0]))
                    self.toolButtonCustomer.click()
                except KeyError:
                    pass
        except KeyError:
            return

        self._reports.load(workdate=self.textWorkdate.text())
        self.populate_report_list()
        self.populate_report_visit_list()
        self.toolButtonReport.click()
Ejemplo n.º 10
0
 def __init__(self):
     self.films = []
     self.settings = Settings()
     global portable_paths
     portable_paths = self.settings.portable_paths
     self._load()
Ejemplo n.º 11
0
STATUS_REBALANCE = 'rebalance'
STATUS_RIDES = 'rides'
STATUS_NEXT_CYCLE = 'next-cycle'
STATUS_FINISH = 'finish'
STATUS_NONE = None

PREDICTION_MODE_7DMA = 'Past 7 Days Moving Average'
PREDICTION_MODE_LSTM = 'LSTM'
PREDICTION_MODE_GRU = 'GRU'
PREDICTION_MODE_BI_LSTM = 'Bi-LSTM'
PREDICTION_MODE_ACTUAL = 'ACTUAL'

START_TIME = datetime(year=2018, month=10, day=1, hour=0)
DEFAULT_SETTINGS = Settings(interval_hour=2,
                            peak_cost=2,
                            off_peak_cost=1,
                            budget_per_cycle=1500,
                            cost_coef=0.2,
                            prediction_mode=PREDICTION_MODE_7DMA)
MOVING_AVERAGE_DAYS = 7

RESULTS_PATH = 'results'
check_dir(RESULTS_PATH)
DATA_PATH = 'data'
JOURNEYS_DATA_PATH = os.path.join(
    DATA_PATH, 'london_journeys_count_with_2h_interval.csv')
STATIONS_DATA_PATH = os.path.join(DATA_PATH, 'london_stations.json')
PREDICTION_DATA_PATHS = {
    PREDICTION_MODE_7DMA:
    os.path.join(DATA_PATH,
                 'london_journeys_predict_with_2h_interval_7DMA.csv'),
    PREDICTION_MODE_LSTM:
Ejemplo n.º 12
0
def settings():
    wifi = Wifi()
    cfg = config()
    settings = Settings(cfg)

    return render_template('./settings.html', networks = wifi.get_networks(), shifts = settings.get_shifts() )