gtg team mailing list archive
-
gtg team
-
Mailing list archive
-
Message #03603
[Merge] lp:~izidor/gtg/small_features into lp:gtg
Izidor Matušov has proposed merging lp:~izidor/gtg/small_features into lp:gtg.
Requested reviews:
Gtg developers (gtg)
Related bugs:
Bug #993920 in Getting Things GNOME!: "Save backups into backup/ folder"
https://bugs.launchpad.net/gtg/+bug/993920
Bug #996236 in Getting Things GNOME!: "Search filter is not deleted on emtpy search string if tag_pane is closed"
https://bugs.launchpad.net/gtg/+bug/996236
For more details, see:
https://code.launchpad.net/~izidor/gtg/small_features/+merge/119281
Two small features which could still make it to GTG 0.3 :)
--
https://code.launchpad.net/~izidor/gtg/small_features/+merge/119281
Your team Gtg developers is requested to review the proposed merge of lp:~izidor/gtg/small_features into lp:gtg.
=== modified file 'AUTHORS'
--- AUTHORS 2012-08-08 18:15:53 +0000
+++ AUTHORS 2012-08-12 23:07:21 +0000
@@ -108,3 +108,4 @@
* Nicolas Maître <nimai@xxxxxxxxx>
* Abhiram <abhiram.ampabathina@xxxxxxxxx>
* Alan Gomes <alangalvino@xxxxxxxxx>
+* Stefan Handschuh <https://launchpad.net/~handschuh> (no email provided)
=== modified file 'CHANGELOG'
--- CHANGELOG 2012-08-12 21:17:10 +0000
+++ CHANGELOG 2012-08-12 23:07:21 +0000
@@ -45,6 +45,8 @@
* Re-enabled support for gtg:// URI
* Fix for bug #1026400: script_pocketmod doesn't have execute permission
* Fix for bug #1027817: Export plugin: changing output format moves widgets up and down
+ * Save backups into backup/ folder, creates backups of tags.xml closes #993920
+ * Search filter is deleted on empty search if tag_pane is closed, by Stefan Handschuh, closes #996236
2012-02-13 Getting Things GNOME! 0.2.9
* Big refractorization of code, now using liblarch
=== modified file 'GTG/core/datastore.py'
--- GTG/core/datastore.py 2012-07-26 17:47:06 +0000
+++ GTG/core/datastore.py 2012-08-12 23:07:21 +0000
@@ -269,7 +269,7 @@
xmlroot.appendChild(t_xml)
already_saved.append(tagname)
- cleanxml.savexml(self.tagfile, doc)
+ cleanxml.savexml(self.tagfile, doc, backup=True)
##########################################################################
### Tasks functions
=== modified file 'GTG/gtk/browser/browser.py'
--- GTG/gtk/browser/browser.py 2012-07-13 17:24:28 +0000
+++ GTG/gtk/browser/browser.py 2012-08-12 23:07:21 +0000
@@ -1541,7 +1541,19 @@
self.search_actions = []
new_actions = []
query = self.quickadd_entry.get_text()
- query=query.strip()
+ query = query.strip()
+
+ # If the tag pane is hidden, reset search filter when query is empty
+ if query == '' and not self.config.get("tag_pane"):
+ tree = self.req.get_tasks_tree(refresh=False)
+ filters = tree.list_applied_filters()
+ for tag_id in self.req.get_all_tags():
+ tag = self.req.get_tag(tag_id)
+ if tag.is_search_tag() and tag_id in filters:
+ self.req.remove_tag(tag_id)
+ self.apply_filter_on_panes(CoreConfig.ALLTASKS_TAG)
+ return
+
if query:
if self.req.get_task_id(query) is not None:
new_actions.append('open')
=== modified file 'GTG/tools/cleanxml.py'
--- GTG/tools/cleanxml.py 2012-05-23 08:55:31 +0000
+++ GTG/tools/cleanxml.py 2012-08-12 23:07:21 +0000
@@ -94,6 +94,12 @@
return doc, xmlproject
+def _get_backup_name(zefile):
+ """ Get name of backups which are in backup/ directory """
+ dirname, filename = os.path.split(zefile)
+ return os.path.join(dirname, 'backup', filename)
+
+
def openxmlfile(zefile, root):
""" Open an XML file in a robust way
@@ -115,7 +121,7 @@
return _try_openxmlfile(zefile, root)
else:
# Creating empty file
- doc,xmlproject = emptydoc(root)
+ doc, xmlproject = emptydoc(root)
newfile = savexml(zefile, doc)
if not newfile:
Log.error("Could not create a new file %s" % zefile)
@@ -139,8 +145,9 @@
Log.warning('Failed with reason: %s' % msg)
# Try to revert to backup
+ backup_name = _get_backup_name(zefile)
for i in range(BACKUP_NBR):
- backup_file = "%s.bak.%d" % (zefile, i)
+ backup_file = "%s.bak.%d" % (backup_name, i)
if os.path.exists(backup_file):
Log.info("Trying to restore backup file %s" % backup_file)
try:
@@ -158,11 +165,22 @@
rootproject = doc.createElement(root)
doc.appendChild(rootproject)
return doc, rootproject
-
+
#write a XML doc to a file
def savexml(zefile,doc,backup=False):
# print "writing %s file" %(zefile)
tmpfile = zefile+'__'
+ backup_name = _get_backup_name(zefile)
+
+ # Create backup directory
+ backup_dir = os.path.dirname(backup_name)
+ if not os.path.exists(backup_dir):
+ try:
+ os.makedirs(backup_dir)
+ except IOError as error:
+ print "Error while creating backup/ directory:", msg
+ return False
+
try:
if os.path.exists(zefile):
os.rename(zefile, tmpfile)
@@ -185,17 +203,18 @@
#We keep BACKUP_NBR versions of the file
#The 0 is the youngest one
while backup_nbr > 0 :
- older = "%s.bak.%s" %(zefile,backup_nbr)
+ older = "%s.bak.%s" % (backup_name, backup_nbr)
backup_nbr -= 1
- newer = "%s.bak.%s" %(zefile,backup_nbr)
+ newer = "%s.bak.%s" % (backup_name, backup_nbr)
if os.path.exists(newer) :
shutil.move(newer,older)
#The bak.0 is always a fresh copy of the closed file
#So that it's not touched in case of bad opening next time
- current = "%s.bak.0" %(zefile)
+ current = "%s.bak.0" % backup_name
shutil.copy(zefile,current)
- daily_backup = "%s.%s.bak" % (zefile, datetime.date.today().strftime("%Y-%m-%d"))
+ daily_backup = "%s.%s.bak" % (backup_name,
+ datetime.date.today().strftime("%Y-%m-%d"))
if not os.path.exists(daily_backup):
shutil.copy(zefile, daily_backup)
return True