Esempio n. 1
0
    def __init__(self, page_controller, user, **kw):
        super().__init__(**kw)

        # instantiate the user
        self.user = user

        # instantiate the controller
        self.controller = page_controller

        # Add app background
        Utils.set_background(self, 'data/home_background.png')

        # Initialize articles directory
        self.articles_dir = 'data/articles'
        self.full_articles_dir = f'{os.getcwd()}/{self.articles_dir}'
        self.article_images_dir = f'{os.getcwd()}/data/article_images'

        # Initialize root widget
        self.root_widget = BoxLayout(orientation="horizontal")
        self.root_widget.spacing = 15
        self.root_widget.padding = 15
        self.add_widget(self.root_widget)

        # Generate articles layout
        self.generate_articles_layout()

        # Generate the preview layout
        self.generate_preview_layout()

        # Generate history, accounts and start box
        self.generate_history_account_start_layout()
Esempio n. 2
0
    def __init__(self, user, page_controller, article_path, **kw):
        super().__init__(**kw)
        self.user = user

        # Initialize page controller module
        self.controller = page_controller

        # Initialize article path
        self.article_path = article_path

        # Set background image of page
        Utils.set_background(self, 'data/home_background.png')

        # Initialize the main root widget
        self.root_widget = BoxLayout(orientation='horizontal',
                                     padding=40,
                                     spacing=20)
        self.add_widget(self.root_widget)

        #Initialize typing score metrics
        self.adjusted_speed = 0
        self.speed = 0
        self.accuracy = 0
        self.time_passed = 0
        self.started_timer = False
        self.times_per_block = []
        self.words_typed = []
        self.document_words = []

        # Generate all elements of the page by calling the generate methods
        self.generate_metrics_and_cancel_box()
        # Utils.add_empty_space(self.root_widget, (0, 1), orientation='horizontal')
        self.generate_story_and_typing_box()
Esempio n. 3
0
    def __init__(self, page_controller, **kw):
        super().__init__(**kw)
        

        # Instantiate user directory. 
        self.user_dir = f'{os.getcwd()}/users'

        # Instantiate the user variable
        self.user = ""

        # Set the background image of the login page
        Utils.set_background(self, 'data/login_background.png')

        # Define the root box of the application to hold all other widgets
        self.root_box = BoxLayout(orientation='vertical', size_hint=(1, .6))
        self.add_widget(self.root_box)
        self.root_box.padding = 30

        # Generate accounts layout on center of page
        self.generate_accounts_box(page_controller=page_controller)
Esempio n. 4
0
    def __init__(self, page_controller, user, **kw):
        super().__init__(**kw)
        # instantiate user
        self.user = user

        self.controller = page_controller

        # SEt screen background
        Utils.set_background(self, 'data/home_background.png')

        # Initialize data path
        self.metric_path = f'{os.getcwd()}/users/{self.user}/{self.user}.csv'
        if os.path.exists(self.metric_path):

            # Initialize data df
            self.data_df = pd.read_csv(self.metric_path)

            # Initialize root box
            self.root_box = BoxLayout(orientation='horizontal',
                                      padding=20,
                                      spacing=20)
            self.add_widget(self.root_box)

            # render metrics box
            self.generate_metric_box()

            # render history box
            self.generate_history_box()

        else:
            self.add_widget(Label(text='NO DATA TO DISPLAY', font_size=50))
            self.add_widget(
                Button(text='BACK',
                       font_size=35,
                       size_hint=(.5, .3),
                       on_release=partial(self.controller.initialize_home_page,
                                          self.user)))