diff --git a/src/Model/Study.py b/src/Model/Study.py index d0ba7747..2b8a859c 100644 --- a/src/Model/Study.py +++ b/src/Model/Study.py @@ -112,6 +112,8 @@ class Study(SQLModel): else: self._init_db_file(self.filename, is_new=True) + self.commit() + # Save self.last_save_date = datetime.now() self._save(progress=progress) @@ -235,7 +237,7 @@ class Study(SQLModel): if version[0] == self._version: return True - logger.info("Update database") + logger.debug("Update database") if self._update_submodel(version[0]): self.execute( diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index eb6fa68e..496c894c 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -666,21 +666,21 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): self._study.filename = file_name try: - sql_request_count = self._study.sql_save_request_count() - progress = QProgressDialog( - "Backup...", None, - 0, sql_request_count, - parent=self - ) - progress.setWindowModality(Qt.WindowModal) - progress.setValue(0) + # sql_request_count = self._study.sql_save_request_count() + # progress = QProgressDialog( + # "Backup...", None, + # 0, sql_request_count, + # parent=self + # ) + # progress.setWindowModality(Qt.WindowModal) + # progress.setValue(0) status = f"Backup ({file_name})..." logger.info(status) self.statusbar.showMessage(status, 3000) self._study.save( - progress=lambda: progress.setValue(progress.value() + 1) + # progress=lambda: progress.setValue(progress.value() + 1) ) status += " Done" diff --git a/src/View/Study/Window.py b/src/View/Study/Window.py index fc7e83aa..4a0b4421 100644 --- a/src/View/Study/Window.py +++ b/src/View/Study/Window.py @@ -18,6 +18,9 @@ import logging +from datetime import datetime +from tools import get_user_name + from Modules import Modules from Model.Study import Study from View.Tools.PamhyrWindow import PamhyrDialog @@ -61,29 +64,69 @@ class NewStudyWindow(PamhyrDialog): ) if self._study is not None: - self.set_line_edit_text("lineEdit_name", self._study.name) - self.set_plaintext_edit_text( - "plainTextEdit_description", self._study.description - ) - self.set_text_edit_text( - "textBrowser_description", self._study.description - ) - self.set_datetime_edit("dateTimeEdit_date", self._study.date) - - self.find(QLabel, "label_creation_date_data").setText( - self._study.creation_date.isoformat(sep=" ") - ) - self.find(QLabel, "label_last_modification_data").setText( - self._study.last_save_date.isoformat(sep=" ") - ) - - if self._study.time_system == "date": - self.set_radio_button("radioButton_date", True) - self.find(QLabel, "label_date").setEnabled(True) - self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(True) + self.set_study_values() + else: + self.set_default_values() self.connection() + def set_study_values(self): + self.set_line_edit_text("lineEdit_name", self._study.name) + self.set_plaintext_edit_text( + "plainTextEdit_description", self._study.description + ) + self.set_text_edit_text( + "textBrowser_description", self._study.description + ) + self.set_datetime_edit("dateTimeEdit_date", self._study.date) + + self.find(QLabel, "label_creation_date_data").setText( + self._study.creation_date.isoformat(sep=" ") + ) + self.find(QLabel, "label_last_modification_data").setText( + self._study.last_save_date.isoformat(sep=" ") + ) + + if self._study.time_system == "date": + self.set_radio_button("radioButton_date", True) + self.find(QLabel, "label_date").setEnabled(True) + self.find(QDateTimeEdit, "dateTimeEdit_date").setEnabled(True) + + def set_default_values(self): + self.set_line_edit_text("lineEdit_name", "MyNewStudy") + + description = f"""# MyNewStudy + +This is my new study description + +--- + +## General information + +... + +## TODO + +- [X] Network +- [ ] Geometry +- [ ] ... + +## Change log + +{datetime.now().strftime('%Y-%m-%d')}: Add a default bief + +--- + +## Copyright + +(c) {get_user_name()} - {datetime.now().year} + +All right reserved. +""" + + self.set_plaintext_edit_text("plainTextEdit_description", description) + self.set_text_edit_text("textBrowser_description", description) + def connection(self): time = self.find(QRadioButton, "radioButton_time") date = self.find(QRadioButton, "radioButton_date") @@ -115,7 +158,6 @@ class NewStudyWindow(PamhyrDialog): def accept(self): name = self.get_line_edit_text("lineEdit_name") description = self.get_plaintext_edit_text("plainTextEdit_description") - logger.info(description) if self._study is None: study = Study.new(name, description) diff --git a/src/View/ui/NewStudy.ui b/src/View/ui/NewStudy.ui index f257dc5f..47b216c1 100644 --- a/src/View/ui/NewStudy.ui +++ b/src/View/ui/NewStudy.ui @@ -6,13 +6,16 @@ 0 0 - 560 - 350 + 896 + 504 Dialog + + + @@ -34,7 +37,7 @@ - MyNewStudy + @@ -50,11 +53,14 @@ - 0 + 1 - Markdown + Edition + + + <html><head/><body><p>Markdown is a plain text format (<a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet"><span style=" text-decoration: underline; color:#0000ff;">cheatsheet</span></a>).</p><p><span style=" font-weight:600;">Title:</span></p><p># Title</p><p>## Subtitle</p><p>### Subsubtitle</p><p><span style=" font-weight:600;">Emphasis:</span></p><p>**<span style=" font-weight:600;">bold</span>**</p><p><span style=" font-style:italic;">_italic_</span></p><p><span style=" font-weight:600;">Lists:</span></p><p>- First</p><p>- Second</p><p>1. First</p><p>2. Second</p><p><span style=" font-weight:600;">Quote:</span></p><p>&gt; This is a quote</p><p><span style=" font-weight:600;">Code:</span></p><p>```python</p><p>print(&quot;hello&quot;)</p><p>```</p><p><span style=" font-weight:600;">Inline HTML:</span></p><p>&lt;font color=&quot;red&quot;&gt;<span style=" color:#ff0000;">foo bar</span>&lt;/font&gt;</p></body></html> diff --git a/src/tools.py b/src/tools.py index 0e4fe40e..7d36d5d7 100644 --- a/src/tools.py +++ b/src/tools.py @@ -17,6 +17,7 @@ # -*- coding: utf-8 -*- import os +import pwd import time import logging import traceback @@ -270,6 +271,12 @@ def timestamp_to_old_pamhyr_date(time: int): return s +def get_user_name(): + if posix: + return pwd.getpwuid(os.getuid()).pw_gecos + else: + return "Me" + ####################### # COMMAND LINE PARSER #