From da18a8b712938307133dac91effd94d5d65c464c Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Mon, 25 Mar 2024 13:57:27 +0100 Subject: [PATCH] Study: Add default description example. --- src/Model/Study.py | 4 +- src/View/MainWindow.py | 18 ++++----- src/View/Study/Window.py | 82 ++++++++++++++++++++++++++++++---------- src/View/ui/NewStudy.ui | 16 +++++--- src/tools.py | 7 ++++ 5 files changed, 92 insertions(+), 35 deletions(-) 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,28 +64,68 @@ 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.set_study_values() + else: + self.set_default_values() - 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=" ") - ) + self.connection() - 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_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.connection() + 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") @@ -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 @@ <rect> <x>0</x> <y>0</y> - <width>560</width> - <height>350</height> + <width>896</width> + <height>504</height> </rect> </property> <property name="windowTitle"> <string>Dialog</string> </property> + <property name="locale"> + <locale language="English" country="Europe"/> + </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <widget class="QLabel" name="label"> @@ -34,7 +37,7 @@ <item row="0" column="1"> <widget class="QLineEdit" name="lineEdit_name"> <property name="text"> - <string>MyNewStudy</string> + <string/> </property> </widget> </item> @@ -50,11 +53,14 @@ <item> <widget class="QTabWidget" name="tabWidget"> <property name="currentIndex"> - <number>0</number> + <number>1</number> </property> <widget class="QWidget" name="tab"> <attribute name="title"> - <string>Markdown</string> + <string>Edition</string> + </attribute> + <attribute name="toolTip"> + <string><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></string> </attribute> <layout class="QGridLayout" name="gridLayout_3"> <item row="0" column="0"> 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 # -- GitLab