diff --git a/.bzrignore b/.bzrignore deleted file mode 100644 index d5884849f..000000000 --- a/.bzrignore +++ /dev/null @@ -1,2 +0,0 @@ -doc/.build -TAGS diff --git a/.emacs-prj b/.emacs-prj deleted file mode 100644 index fe140284e..000000000 --- a/.emacs-prj +++ /dev/null @@ -1,12 +0,0 @@ -r; -*- lisp -*- -; -; project settings for Bauble -; -;(add-to-list 'org-agenda-files (expand-file-name "./org/bauble.org")) -;(setq bauble-root "~/devel/bauble/trunk") -(setq bauble-root (file-name-directory buffer-file-name)) -;(setq org-agenda-files (list (expand-file-name (concat bauble-root "/org/bauble.org")))) -(add-to-list org-agenda-files (expand-file-name (concat bauble-root "/org/bauble.org"))) -(setq tags-file-name (concat bauble-root "/TAGS")) -(setenv "PYLINTRC" (concat bauble-root ".pylintrc")) -(define-key run-project ("\C-pr") \ No newline at end of file diff --git a/CHANGES b/CHANGES deleted file mode 100644 index 0b38c48f7..000000000 --- a/CHANGES +++ /dev/null @@ -1,1572 +0,0 @@ -0.7.0 -------- -- More robust and cleaned up plugin interface -- Translatable - - -0.6.0 (changes since 0.5.3) -------- -- Now uses SQLAlchemy instead of SQLObject as the database ORM. -- Moved away from the table/spreadsheet style data entry. -- Reworked formatter plugin. -- More reliable CSV import/export -- More correct ABCD export (still some work to be done) -- Close to 3 billion bug fixes. - -2006.07.04 ----------- -- builds now include the revision in the filename -- fix a bug when there is no infobox for a type in the search results - -2006.07.02 ----------- -- don't remove and destroy the infobox if the current infobox is the same -type we are going to create -- cache infoboxes so we only create one of each type once -- create a (crappy) icon for windows - -2006.07.01 ----------- -- added an InfoBox for Family -- lots of improvements all the infoboxes -- context menu for locations - -2006.06.30 ----------- -- improved behavior of resetting the view after an action has been done -from the context menu or insert menu -- don't change sensitivity on search -- first go at a Genus infobox - -2006.06.29 ----------- -- change the way the results in the search view are displayed and how the -context menu is built, push more of the work off to the plugins since they -should know more about the types they represent - -2006.06.28 ----------- -- fixed error message in update_infobox if the iter was None -- fixed a problem when trying to commit donations, refactored out fixing up -the model from the accession source presenter depending on the type of the -presenter - -2006.06.26 ----------- -release 0.5.2 - -2006.06.25 ----------- -- pass species correctly accession editor when opened from the species editor -- fixes for windows -- set app busy when creating a new database, this doesn't work very well since -the gui isn't given time to update and csv import doesn't block -- now get plants from family and genera in results -- make sure that the plants in the formatter list are unique -- other minor improvements to formatter plugin and documentation updates - -2006.06.24 ----------- -- on going doc improvements -- improved speed of editor.SQLObjectProxy by doing less attribute lookups -in some methods -- removed some unnecessary code in species_editor.py -- removing a row from the vernacular name table with now set any -Species.default_vernacular_name column to None if the default_vernacular_name -refers to the deleted row -- basic cleanup/fixing to get ready for 0.5.2 release -- new vernacular names and synonyms are now blue to show that they have just -been added but not committed -- some tweaks to the search results tree view -- update infobox after editing an existing row - -2006.06.21 ----------- -- documentation updates -- species now includes sp_qual in the name and the id_qual is included -in the infobox - -2006.06.14 ----------- -- documentation updates - -2006.06.13 ----------- -- now ask in BaubleApp.create_database if the user wants to import the genera -- show a message and don't let the use open the accession or species editor -unless species or genera already exist in the database -- forgot to change GenusSynonyms.txt to new imex_csv format -- change Family.family to not be alternateID so we can have both, -e.g., Malvaceae (s. lat) and Malvaceae (s. str), this is a bit of a fuck -up since it changes the model so it should require us to bump the minor -number and recreate the database if you want this feature -- other small bugs in imex_csv and the utils message_dialog - -2006.06.12 ----------- -- changed the format of csv import to now use the column names as they are in -the database instead of how SQLObject sees them -- changed the way dialogs are show in csv import to prevent lock ups -- tried to improve the speed of imports a bit by changing the way the rows -are inserted, we now use sqlobject.sqlbuild.Insert. though it would still probably -be faster if we got it to work by sending the entire list of values to the -insert instead of one row at i time, i'm not sure if this is the real bottleneck -on the imports -- lots of other small fixes in csv import/export - -2006.06.09 ----------- -- more work on csv export to make the gui more responsive -- code cleanups and docs - -2006.06.08 ----------- -- rewrote csv importing to use gtasklets -(http://www.gnome.org/~gjc/gtasklet/gtasklets.html) so now we have a progress -dialog - -2006.06.07 ----------- -- created some test for Species.str() to make sure we are getting string that -conform to proper botanical nomenclature - -2006.06.06 ----------- -- fixed bug with setting background color on the species editor genus entry -when a character is deleted -- fixed a bug when cancelling a dirty model in the species and accession -editors would make further commits not commit until bauble was closed and -possibly not commit at all -- connected the full name label in the species editor -- lots of small changes in the species editor so we can stabilize for 0.5.2 -- any value from a widget that doesn't validate against the model now adds -a problem to the presenter which usually disables the ok buttons -- fixes and on the species and accession info boxes - -2006.06.01 ----------- -- continue work on species editor -- fixed but in utils.search_tree_model where the function was calling itself -recursively with the wrong arguments -- fixed setting False values on a gtk.CheckBoxe in utils.set_widget_value - -2006.05.30 ----------- -- did some work on the species editor and the vernacular name editor, can now -set default vernacular names for the species - -2006.05.29 ----------- -- can no longer set attributes in SQLObjectProxy that don't exist, this helps -reduce possible bugs -- first pass at adding vernacular names in the species editor - -2006.05.29 ----------- -- got the basics working on the species editor -- first pass at adding synonyms with new species editor - -2006.05.28 ----------- -- did some work to try and improve the speed of displaying strings -- cleaned up SearchView.search and added status bar message for the number of -results in a search - -2006.05.27 ----------- -- started toying around with the species editor -- alot of changes in the plants plugin, all species model definitions were -moved to species_model.py while all editor(and for now infoboxes) for species -model are in species_model.py -- changed all plugins to use absolute instead of relative paths -- fixed problem with acc_id_entry and the sensitivity/self.problems - -2006.05.23 ----------- -- changed the way that the accession editor displays when something is wrong -with an entry, the old way using event boxes didn't work like i thought -- moved Problems class into editor.py and added self.problem to -GenericEditorPresenter and added GenericEditorPresenter.add_problem and -GenericEditorPresenter.remove_problem -- fix calculation error with accession.dms_to_decimal when the direction is -west or source, i.e. negative -- don't save the elevation accuracy for the accession if the elevation is None -- make sure that both or neither latitude and longitude are required -- don't save geo accuracy of latitude and longitude are none -- desensitize geoacc_entry if latitude or longitude are None -- desensitize altacc_entry if alt_entry is None -- accession editor gui tweaks for win32 -- add dms labels back to accession editor which i accidentaly deleted - -2006.05.23 ----------- -- bumped version to 0.5.1 -- accession editor now gives status is accession entered is a duplicate -accession id -- fixed problem with existing accession notes not showing up in the editor -- now include README, LICENSE and CHANGES in the distribution -- fixed annoying 'feature' where the species entry on the accession editor -would reset the completions for the species when a species was selected, this -caused weird pauses when the a species was selected - -2006.05.22 ----------- -- interface tweaks for windows -- niced up the donor editor and donation editors a bit -- fix accidental line change in init_species_entry -- fix warning from the donor_combo in the accession editor -- problem with dates in the accession editor -- upgrade SQLObject to SQLObject-0.7.1dev_r1788 bugfix branch for the -windows bundle -- branch for 0.5.0 - -2006.05.20 ----------- -- fixed provenance combos in the accession editor - -2006.05.18 ----------- -- added a main.py to bauble which will start the full application -- some win32 tweaks and import cleanups -- added a custom validator to accession.py for when floats col gets and empty -string from it's widget - -2006.05.17 ----------- -- fixed problem with setting the completion when a species is passed to an -accession editor -- the species entry on the accession editor now shows if the value in the -entry, or rather in the model, is a valid species by setting the ok buttons -sensitive and changing the color of the species entry -- changed donor contact info the unicode -- Accession.acc_id now unicode -- Plant.plant_id now unicode -- Donor.donor_acc now unicode -- changed some other columns from StringCol to UnicodeCol but I can't remember -all of them - -2006.05.16 ----------- -- fixed problems passing default values into new editors -- fixed problem with arguments on old editors, added temporary fix for -old editors -- workaround for weird bug with text entries and completions in the accession -editor - -2006.05.14 ----------- -- more model changes on family, genus and species -- sort text files on csv import so we import them in order of dependencies -- can now import csv from the command line, it's crude but it works -- more work on bauble-upgrade-0.4-to-0.5.py script -- appropriate changes to editors where the model changed -- changes to BaubleApp so that we can open and create database without starting -up the gui/full app -- don't load plugins on automatically on plugins module import, -# wait until either plugins.load is called or plugins.init_plugins() -- more, more, more - -2006.05.12 ----------- -- more tweaks on the accession editor, the labels on required fields are now -italicized, the lon/lat editing should be a dream now -- don't round lon/lat conversion values - -2006.05.12 ----------- -- drastically improved the accession editor gui -- changed version to 0.5.0 -- made model changes for 0.5.0 -- added PlantHistory table though it doesn't have an editor yet -- added Accession.date and updated the editor -- removed Collection.collector2 -- changed all 's in EnumCol's to None - -2006.05.11 ----------- -- brought the decimal/dms conversion funcation back into accession.py -since this is the only place they are used and fixed them up a bit -- wrote my first unit test for the conversion funcations and added -the test.py to the garden plugin - -2006.05.10 ----------- -- added validator support to GenericEditorPresenter.assign_simple_handler() -- changed Accession.source_type to an EnumCol(Collection, Donation, None), this -shouldn't change anything in the database but could cause problems if using an -older broken version of bauble that was storing the string NoneType in -the source type, although this changes the model i'm not bumping the minor -version number -- small fixes on the accession infobox -- added proper handlers for collection dates and lat/lon though lat/lon still -doesn't work that well -- and loads of other improvements/fixes to accession.py that i can't remember - -2006.05.09 ----------- -- fixed indentation problems in search.py -- improvements on the accession editor, should open faster now but -completion for the species entry are built in an idle_add callback -so when this is being done the things seem to lock up -- connect next and ok_and_add buttons to accession editor - -2006.05.05 ----------- -- refactored TreeViewEditorDialog and all relevant code out of -bauble/editor.py and into bauble/treevieweditor.py -- changed all files relevant to TreeViewEditorDialog refactoring -- more accession editor work -- start of work for a better donor editor -- committed r251 -- both accession and donor editor seem more or less finished, just need to -hook up next and ok_and_add buttons -- more refactoring and cleanup, too much to list - -2006.05.04 ----------- -- added accelerator for Insert menu -- changed to utils.set_widget_value to try and make setting the combobox -value a bit more correct -- indentation fixes in _gui.py -- factored check_constraints and commit_to_table out of the editor -- accession editor seems to be working pretty good though I still need -to write test and work on editing donations - -2006.05.02 ----------- -- add a callback system to SQLObjectProxy to notify of changed in the model -- the basics seem to work on the accession editor as long as you -don't mess around with the collection/donation information -- created bauble/error.py to hold exception/error classes - -2006.05.01 ----------- -- mostly work on new accession editor -- some small fixes for utils -- added get method to prefs to return default value -- small change in searchview.search.py to support new editor api - -======= ->>>>>>> .r343 -======= -2006.07.02 ----------- -- don't remove and destroy the infobox if the current infobox is the same -type we are going to create -- cache infoboxes so we only create one of each type once -- create a (crappy) icon for windows - -2006.07.01 ----------- -- added an InfoBox for Family -- lots of improvements all the infoboxes -- context menu for locations - -2006.06.30 ----------- -- improved behavior of resetting the view after an action has been done -from the context menu or insert menu -- don't change sensitivity on search -- first go at a Genus infobox - -2006.06.29 ----------- -- change the way the results in the search view are displayed and how the -context menu is built, push more of the work off to the plugins since they -should know more about the types they represent - -2006.06.28 ----------- -- fixed error message in update_infobox if the iter was None -- fixed a problem when trying to commit donations, refactored out fixing up -the model from the accession source presenter depending on the type of the -presenter - -2006.06.26 ----------- -release 0.5.2 - -2006.06.25 ----------- -- pass species correctly accession editor when opened from the species editor -- fixes for windows -- set app busy when creating a new database, this doesn't work very well since -the gui isn't given time to update and csv import doesn't block -- now get plants from family and genera in results -- make sure that the plants in the formatter list are unique -- other minor improvements to formatter plugin and documentation updates - -2006.06.24 ----------- -- on going doc improvements -- improved speed of editor.SQLObjectProxy by doing less attribute lookups -in some methods -- removed some unnecessary code in species_editor.py -- removing a row from the vernacular name table with now set any -Species.default_vernacular_name column to None if the default_vernacular_name -refers to the deleted row -- basic cleanup/fixing to get ready for 0.5.2 release -- new vernacular names and synonyms are now blue to show that they have just -been added but not committed -- some tweaks to the search results tree view -- update infobox after editing an existing row - -2006.06.21 ----------- -- documentation updates -- species now includes sp_qual in the name and the id_qual is included -in the infobox - -2006.06.14 ----------- -- documentation updates - -2006.06.13 ----------- -- now ask in BaubleApp.create_database if the user wants to import the genera -- show a message and don't let the use open the accession or species editor -unless species or genera already exist in the database -- forgot to change GenusSynonyms.txt to new imex_csv format -- change Family.family to not be alternateID so we can have both, -e.g., Malvaceae (s. lat) and Malvaceae (s. str), this is a bit of a fuck -up since it changes the model so it should require us to bump the minor -number and recreate the database if you want this feature -- other small bugs in imex_csv and the utils message_dialog - -2006.06.12 ----------- -- changed the format of csv import to now use the column names as they are in -the database instead of how SQLObject sees them -- changed the way dialogs are show in csv import to prevent lock ups -- tried to improve the speed of imports a bit by changing the way the rows -are inserted, we now use sqlobject.sqlbuild.Insert. though it would still probably -be faster if we got it to work by sending the entire list of values to the -insert instead of one row at i time, i'm not sure if this is the real bottleneck -on the imports -- lots of other small fixes in csv import/export - -2006.06.09 ----------- -- more work on csv export to make the gui more responsive -- code cleanups and docs - -2006.06.08 ----------- -- rewrote csv importing to use gtasklets -(http://www.gnome.org/~gjc/gtasklet/gtasklets.html) so now we have a progress -dialog - -2006.06.07 ----------- -- created some test for Species.str() to make sure we are getting string that -conform to proper botanical nomenclature - -2006.06.06 ----------- -- fixed bug with setting background color on the species editor genus entry -when a character is deleted -- fixed a bug when cancelling a dirty model in the species and accession -editors would make further commits not commit until bauble was closed and -possibly not commit at all -- connected the full name label in the species editor -- lots of small changes in the species editor so we can stabilize for 0.5.2 -- any value from a widget that doesn't validate against the model now adds -a problem to the presenter which usually disables the ok buttons -- fixes and on the species and accession info boxes - -2006.06.01 ----------- -- continue work on species editor -- fixed but in utils.search_tree_model where the function was calling itself -recursively with the wrong arguments -- fixed setting False values on a gtk.CheckBoxe in utils.set_widget_value - -2006.05.30 ----------- -- did some work on the species editor and the vernacular name editor, can now -set default vernacular names for the species - -2006.05.29 ----------- -- can no longer set attributes in SQLObjectProxy that don't exist, this helps -reduce possible bugs -- first pass at adding vernacular names in the species editor - -2006.05.29 ----------- -- got the basics working on the species editor -- first pass at adding synonyms with new species editor - -2006.05.28 ----------- -- did some work to try and improve the speed of displaying strings -- cleaned up SearchView.search and added status bar message for the number of -results in a search - -2006.05.27 ----------- -- started toying around with the species editor -- alot of changes in the plants plugin, all species model definitions were -moved to species_model.py while all editor(and for now infoboxes) for species -model are in species_model.py -- changed all plugins to use absolute instead of relative paths -- fixed problem with acc_id_entry and the sensitivity/self.problems - -2006.05.23 ----------- -- changed the way that the accession editor displays when something is wrong -with an entry, the old way using event boxes didn't work like i thought -- moved Problems class into editor.py and added self.problem to -GenericEditorPresenter and added GenericEditorPresenter.add_problem and -GenericEditorPresenter.remove_problem -- fix calculation error with accession.dms_to_decimal when the direction is -west or source, i.e. negative -- don't save the elevation accuracy for the accession if the elevation is None -- make sure that both or neither latitude and longitude are required -- don't save geo accuracy of latitude and longitude are none -- desensitize geoacc_entry if latitude or longitude are None -- desensitize altacc_entry if alt_entry is None -- accession editor gui tweaks for win32 -- add dms labels back to accession editor which i accidentaly deleted - -2006.05.23 ----------- -- bumped version to 0.5.1 -- accession editor now gives status is accession entered is a duplicate -accession id -- fixed problem with existing accession notes not showing up in the editor -- now include README, LICENSE and CHANGES in the distribution -- fixed annoying 'feature' where the species entry on the accession editor -would reset the completions for the species when a species was selected, this -caused weird pauses when the a species was selected - -2006.05.22 ----------- -- interface tweaks for windows -- niced up the donor editor and donation editors a bit -- fix accidental line change in init_species_entry -- fix warning from the donor_combo in the accession editor -- problem with dates in the accession editor -- upgrade SQLObject to SQLObject-0.7.1dev_r1788 bugfix branch for the -windows bundle -- branch for 0.5.0 - -2006.05.20 ----------- -- fixed provenance combos in the accession editor - -2006.05.18 ----------- -- added a main.py to bauble which will start the full application -- some win32 tweaks and import cleanups -- added a custom validator to accession.py for when floats col gets and empty -string from it's widget - -2006.05.17 ----------- -- fixed problem with setting the completion when a species is passed to an -accession editor -- the species entry on the accession editor now shows if the value in the -entry, or rather in the model, is a valid species by setting the ok buttons -sensitive and changing the color of the species entry -- changed donor contact info the unicode -- Accession.acc_id now unicode -- Plant.plant_id now unicode -- Donor.donor_acc now unicode -- changed some other columns from StringCol to UnicodeCol but I can't remember -all of them - -2006.05.16 ----------- -- fixed problems passing default values into new editors -- fixed problem with arguments on old editors, added temporary fix for -old editors -- workaround for weird bug with text entries and completions in the accession -editor - -2006.05.14 ----------- -- more model changes on family, genus and species -- sort text files on csv import so we import them in order of dependencies -- can now import csv from the command line, it's crude but it works -- more work on bauble-upgrade-0.4-to-0.5.py script -- appropriate changes to editors where the model changed -- changes to BaubleApp so that we can open and create database without starting -up the gui/full app -- don't load plugins on automatically on plugins module import, -# wait until either plugins.load is called or plugins.init_plugins() -- more, more, more - -2006.05.12 ----------- -- more tweaks on the accession editor, the labels on required fields are now -italicized, the lon/lat editing should be a dream now -- don't round lon/lat conversion values - -2006.05.12 ----------- -- drastically improved the accession editor gui -- changed version to 0.5.0 -- made model changes for 0.5.0 -- added PlantHistory table though it doesn't have an editor yet -- added Accession.date and updated the editor -- removed Collection.collector2 -- changed all 's in EnumCol's to None - -2006.05.11 ----------- -- brought the decimal/dms conversion funcation back into accession.py -since this is the only place they are used and fixed them up a bit -- wrote my first unit test for the conversion funcations and added -the test.py to the garden plugin - -2006.05.10 ----------- -- added validator support to GenericEditorPresenter.assign_simple_handler() -- changed Accession.source_type to an EnumCol(Collection, Donation, None), this -shouldn't change anything in the database but could cause problems if using an -older broken version of bauble that was storing the string NoneType in -the source type, although this changes the model i'm not bumping the minor -version number -- small fixes on the accession infobox -- added proper handlers for collection dates and lat/lon though lat/lon still -doesn't work that well -- and loads of other improvements/fixes to accession.py that i can't remember - -2006.05.09 ----------- -- fixed indentation problems in search.py -- improvements on the accession editor, should open faster now but -completion for the species entry are built in an idle_add callback -so when this is being done the things seem to lock up -- connect next and ok_and_add buttons to accession editor - -2006.05.05 ----------- -- refactored TreeViewEditorDialog and all relevant code out of -bauble/editor.py and into bauble/treevieweditor.py -- changed all files relevant to TreeViewEditorDialog refactoring -- more accession editor work -- start of work for a better donor editor -- committed r251 -- both accession and donor editor seem more or less finished, just need to -hook up next and ok_and_add buttons -- more refactoring and cleanup, too much to list - -2006.05.04 ----------- -- added accelerator for Insert menu -- changed to utils.set_widget_value to try and make setting the combobox -value a bit more correct -- indentation fixes in _gui.py -- factored check_constraints and commit_to_table out of the editor -- accession editor seems to be working pretty good though I still need -to write test and work on editing donations - -2006.05.02 ----------- -- add a callback system to SQLObjectProxy to notify of changed in the model -- the basics seem to work on the accession editor as long as you -don't mess around with the collection/donation information -- created bauble/error.py to hold exception/error classes - -2006.05.01 ----------- -- mostly work on new accession editor -- some small fixes for utils -- added get method to prefs to return default value -- small change in searchview.search.py to support new editor api - ->>>>>>> .r343 -======= -2006.07.02 ----------- -- don't remove and destroy the infobox if the current infobox is the same -type we are going to create -- cache infoboxes so we only create one of each type once -- create a (crappy) icon for windows - -2006.07.01 ----------- -- added an InfoBox for Family -- lots of improvements all the infoboxes -- context menu for locations - -2006.06.30 ----------- -- improved behavior of resetting the view after an action has been done -from the context menu or insert menu -- don't change sensitivity on search -- first go at a Genus infobox - -2006.06.29 ----------- -- change the way the results in the search view are displayed and how the -context menu is built, push more of the work off to the plugins since they -should know more about the types they represent - -2006.06.28 ----------- -- fixed error message in update_infobox if the iter was None -- fixed a problem when trying to commit donations, refactored out fixing up -the model from the accession source presenter depending on the type of the -presenter - -2006.06.26 ----------- -release 0.5.2 - -2006.06.25 ----------- -- pass species correctly accession editor when opened from the species editor -- fixes for windows -- set app busy when creating a new database, this doesn't work very well since -the gui isn't given time to update and csv import doesn't block -- now get plants from family and genera in results -- make sure that the plants in the formatter list are unique -- other minor improvements to formatter plugin and documentation updates - -2006.06.24 ----------- -- on going doc improvements -- improved speed of editor.SQLObjectProxy by doing less attribute lookups -in some methods -- removed some unnecessary code in species_editor.py -- removing a row from the vernacular name table with now set any -Species.default_vernacular_name column to None if the default_vernacular_name -refers to the deleted row -- basic cleanup/fixing to get ready for 0.5.2 release -- new vernacular names and synonyms are now blue to show that they have just -been added but not committed -- some tweaks to the search results tree view -- update infobox after editing an existing row - -2006.06.21 ----------- -- documentation updates -- species now includes sp_qual in the name and the id_qual is included -in the infobox - -2006.06.14 ----------- -- documentation updates - -2006.06.13 ----------- -- now ask in BaubleApp.create_database if the user wants to import the genera -- show a message and don't let the use open the accession or species editor -unless species or genera already exist in the database -- forgot to change GenusSynonyms.txt to new imex_csv format -- change Family.family to not be alternateID so we can have both, -e.g., Malvaceae (s. lat) and Malvaceae (s. str), this is a bit of a fuck -up since it changes the model so it should require us to bump the minor -number and recreate the database if you want this feature -- other small bugs in imex_csv and the utils message_dialog - -2006.06.12 ----------- -- changed the format of csv import to now use the column names as they are in -the database instead of how SQLObject sees them -- changed the way dialogs are show in csv import to prevent lock ups -- tried to improve the speed of imports a bit by changing the way the rows -are inserted, we now use sqlobject.sqlbuild.Insert. though it would still probably -be faster if we got it to work by sending the entire list of values to the -insert instead of one row at i time, i'm not sure if this is the real bottleneck -on the imports -- lots of other small fixes in csv import/export - -2006.06.09 ----------- -- more work on csv export to make the gui more responsive -- code cleanups and docs - -2006.06.08 ----------- -- rewrote csv importing to use gtasklets -(http://www.gnome.org/~gjc/gtasklet/gtasklets.html) so now we have a progress -dialog - -2006.06.07 ----------- -- created some test for Species.str() to make sure we are getting string that -conform to proper botanical nomenclature - -2006.06.06 ----------- -- fixed bug with setting background color on the species editor genus entry -when a character is deleted -- fixed a bug when cancelling a dirty model in the species and accession -editors would make further commits not commit until bauble was closed and -possibly not commit at all -- connected the full name label in the species editor -- lots of small changes in the species editor so we can stabilize for 0.5.2 -- any value from a widget that doesn't validate against the model now adds -a problem to the presenter which usually disables the ok buttons -- fixes and on the species and accession info boxes - -2006.06.01 ----------- -- continue work on species editor -- fixed but in utils.search_tree_model where the function was calling itself -recursively with the wrong arguments -- fixed setting False values on a gtk.CheckBoxe in utils.set_widget_value - -2006.05.30 ----------- -- did some work on the species editor and the vernacular name editor, can now -set default vernacular names for the species - -2006.05.29 ----------- -- can no longer set attributes in SQLObjectProxy that don't exist, this helps -reduce possible bugs -- first pass at adding vernacular names in the species editor - -2006.05.29 ----------- -- got the basics working on the species editor -- first pass at adding synonyms with new species editor - -2006.05.28 ----------- -- did some work to try and improve the speed of displaying strings -- cleaned up SearchView.search and added status bar message for the number of -results in a search - -2006.05.27 ----------- -- started toying around with the species editor -- alot of changes in the plants plugin, all species model definitions were -moved to species_model.py while all editor(and for now infoboxes) for species -model are in species_model.py -- changed all plugins to use absolute instead of relative paths -- fixed problem with acc_id_entry and the sensitivity/self.problems - -2006.05.23 ----------- -- changed the way that the accession editor displays when something is wrong -with an entry, the old way using event boxes didn't work like i thought -- moved Problems class into editor.py and added self.problem to -GenericEditorPresenter and added GenericEditorPresenter.add_problem and -GenericEditorPresenter.remove_problem -- fix calculation error with accession.dms_to_decimal when the direction is -west or source, i.e. negative -- don't save the elevation accuracy for the accession if the elevation is None -- make sure that both or neither latitude and longitude are required -- don't save geo accuracy of latitude and longitude are none -- desensitize geoacc_entry if latitude or longitude are None -- desensitize altacc_entry if alt_entry is None -- accession editor gui tweaks for win32 -- add dms labels back to accession editor which i accidentaly deleted - -2006.05.23 ----------- -- bumped version to 0.5.1 -- accession editor now gives status is accession entered is a duplicate -accession id -- fixed problem with existing accession notes not showing up in the editor -- now include README, LICENSE and CHANGES in the distribution -- fixed annoying 'feature' where the species entry on the accession editor -would reset the completions for the species when a species was selected, this -caused weird pauses when the a species was selected - -2006.05.22 ----------- -- interface tweaks for windows -- niced up the donor editor and donation editors a bit -- fix accidental line change in init_species_entry -- fix warning from the donor_combo in the accession editor -- problem with dates in the accession editor -- upgrade SQLObject to SQLObject-0.7.1dev_r1788 bugfix branch for the -windows bundle -- branch for 0.5.0 - -2006.05.20 ----------- -- fixed provenance combos in the accession editor - -2006.05.18 ----------- -- added a main.py to bauble which will start the full application -- some win32 tweaks and import cleanups -- added a custom validator to accession.py for when floats col gets and empty -string from it's widget - -2006.05.17 ----------- -- fixed problem with setting the completion when a species is passed to an -accession editor -- the species entry on the accession editor now shows if the value in the -entry, or rather in the model, is a valid species by setting the ok buttons -sensitive and changing the color of the species entry -- changed donor contact info the unicode -- Accession.acc_id now unicode -- Plant.plant_id now unicode -- Donor.donor_acc now unicode -- changed some other columns from StringCol to UnicodeCol but I can't remember -all of them - -2006.05.16 ----------- -- fixed problems passing default values into new editors -- fixed problem with arguments on old editors, added temporary fix for -old editors -- workaround for weird bug with text entries and completions in the accession -editor - -2006.05.14 ----------- -- more model changes on family, genus and species -- sort text files on csv import so we import them in order of dependencies -- can now import csv from the command line, it's crude but it works -- more work on bauble-upgrade-0.4-to-0.5.py script -- appropriate changes to editors where the model changed -- changes to BaubleApp so that we can open and create database without starting -up the gui/full app -- don't load plugins on automatically on plugins module import, -# wait until either plugins.load is called or plugins.init_plugins() -- more, more, more - -2006.05.12 ----------- -- more tweaks on the accession editor, the labels on required fields are now -italicized, the lon/lat editing should be a dream now -- don't round lon/lat conversion values - -2006.05.12 ----------- -- drastically improved the accession editor gui -- changed version to 0.5.0 -- made model changes for 0.5.0 -- added PlantHistory table though it doesn't have an editor yet -- added Accession.date and updated the editor -- removed Collection.collector2 -- changed all 's in EnumCol's to None - -2006.05.11 ----------- -- brought the decimal/dms conversion funcation back into accession.py -since this is the only place they are used and fixed them up a bit -- wrote my first unit test for the conversion funcations and added -the test.py to the garden plugin - -2006.05.10 ----------- -- added validator support to GenericEditorPresenter.assign_simple_handler() -- changed Accession.source_type to an EnumCol(Collection, Donation, None), this -shouldn't change anything in the database but could cause problems if using an -older broken version of bauble that was storing the string NoneType in -the source type, although this changes the model i'm not bumping the minor -version number -- small fixes on the accession infobox -- added proper handlers for collection dates and lat/lon though lat/lon still -doesn't work that well -- and loads of other improvements/fixes to accession.py that i can't remember - -2006.05.09 ----------- -- fixed indentation problems in search.py -- improvements on the accession editor, should open faster now but -completion for the species entry are built in an idle_add callback -so when this is being done the things seem to lock up -- connect next and ok_and_add buttons to accession editor - -2006.05.05 ----------- -- refactored TreeViewEditorDialog and all relevant code out of -bauble/editor.py and into bauble/treevieweditor.py -- changed all files relevant to TreeViewEditorDialog refactoring -- more accession editor work -- start of work for a better donor editor -- committed r251 -- both accession and donor editor seem more or less finished, just need to -hook up next and ok_and_add buttons -- more refactoring and cleanup, too much to list - -2006.05.04 ----------- -- added accelerator for Insert menu -- changed to utils.set_widget_value to try and make setting the combobox -value a bit more correct -- indentation fixes in _gui.py -- factored check_constraints and commit_to_table out of the editor -- accession editor seems to be working pretty good though I still need -to write test and work on editing donations - -2006.05.02 ----------- -- add a callback system to SQLObjectProxy to notify of changed in the model -- the basics seem to work on the accession editor as long as you -don't mess around with the collection/donation information -- created bauble/error.py to hold exception/error classes - -2006.05.01 ----------- -- mostly work on new accession editor -- some small fixes for utils -- added get method to prefs to return default value -- small change in searchview.search.py to support new editor api - ->>>>>>> .r343 -2006.04.09 ----------- -- fixed a small problem with the logger and the user directory that could -make Bauble not run at all -- released 0.4.6 - -2006.04.09 ----------- -- released 0.4.5 - -2006.04.08 ----------- -- fix for a problem with constraints and EnumCols returning unicode strings -- preparing for 0.4.5 - -2006.04.07 ----------- -- fix regression for source editor not returning the correct response codes - - -2006.04.05 ----------- -- fixed problem where bauble wouldn't run if it couldn't open the log file (reported by Helder Perez) - - -2006.04.04 ----------- -- cache Species strings but disable it until we can invalidate the cache -in case the Species is changed - - -2006.03.13 ----------- -- fix for searching for strings in unicode columns - - -2006.03.10 ----------- -- search parser correctness fixes -- remove name domain for searching species and replaced it with 'species' -- made quoting of value in search expression more portable with _LikeQuotedx - - -2006.03.07 ----------- -- fix problem with unicode strings and constraints - - -2006.03.04 ----------- -- finally made the ok button on the message_details_dialog the default focus -- check the constraints on the columns before we try and commit se we don't -mess up out transaction which can screw up any pending commits from an editor's -sub editors -- starting the mockups for the new editors and combined all editors in a plugin -into one glade file, see editors.glade in the plugin directory -- created basic installer script for windows - - -2006.03.04 ----------- -- combined editor.pre_commit_hook and _transform_row in _model_row_to_values -- updated all editors to use _model_row_values and got rid of all instances of -_transform_row and pre_commit_hook -- cleaned out old bits code - - -2006.03.02 ----------- -- forgot to add icon and logo to svn -- disabled icon from win32 since my gtk for win32 doesn't have an svg pixbuf -loader - - -2006.03.01 ----------- -- fixed the open_database() fix -- adding and editing item from the context menu refreshes the view a bit -smarter -- new logo image -- new logo as window icon -- cleaned up some old code in the GUI -- fixed problem with storing the string 'NoneType' instead of the value None in -the accession.source_type column - - -2006.02.28 ----------- -- fixed problem with creating vernacular names -- save an editors state even if the dialog is canceled -- fixed problem when opening a database fails the wrong value was being -return from open_database() - - -2006.02.23 ----------- -- more or less finished the new search queries, can now do search like -acc where plants.acc_status = Dead - - -2006.02.22 ----------- -- first commit on new search query features - - -2006.02.20 ----------- -- don't continue with program if loading one of the plugins fail -- upgraded searchview.pyparsing to 1.4.1 - - -2006.02.08 ----------- -- release 0.4.4 - - -2006.02.07 ----------- -- if we can't find any connections in the prefs then popup a dialog telling -the user they should create one -- change the window title to include the name of the current connection -- opening a new connection or creating a new database now resets the searchview -- include the example xsl files in the distribution -- add .pdf to formatter output filename so file associations work on windows -- added user_dir() to bauble.paths to get the users setting directory -- log message now automatically go to a file in a frozen executable on win32 -- in general made logging better, shouldn't get logger popup on windows -anymore though it may still come up if there's a print statement somewhere - - -2006.02.06 ----------- -- fixes for building a py2exe executable using pygtk >= 2.8.4 -- make sure we check for pysqlite even if SQLObject says sqlite is not -supported - - -2006.02.03 ----------- -- fixed removing existing data in a row which also means you can now set None -to a row -- fixed a problem where we were corrupting $PATH - - -2006.02.02 ----------- -- some usability work on the connection manager and minor fixes -- the prefs config directory is now only created when bauble is run, not just -when it's packages are imported, like when run from setup.py -- small try..except changes to the utils dialogs - - -2006.01.25 ----------- -- fixed a problem are trying to commit the values in an editor if there had -been a previous exception trying to commit -- the offending row is now highlighted when there is a problem trying to -commit the values in an editor -- added editor.CommitException to wrap the exception throws from the database -on commit, also allows us to pass the model row used when trying to commit - - -2006.01.23 ----------- -- changed TreeViewEditorDialog._commit_model_row to _commit_model_rows - - -2006.01.19 ----------- -- make the default sort order more reasonable for accessions, plants, families, -genera, and species -- removed sorting of results in the search view since tables should now -specify their own sort order - - -2006.01.16 ----------- -- a clicking on the "Search" button in the search view now turns off the -current infobox -- the ConnectionManager and its password dialog now ask to be centered on -the screen -- fixed problem with editing an Accession's Donation if the donations already -exists -- fixed some problems with the Accession Infobox -- fixes for the message dialog in utils if they are opened before the gui -starts - - -2006.01.16 ----------- -- properly escape Species.sp_author and Species. -- fixed a problem if tag table couldn't be loaded then the global transaction -is invalidated and bauble can't be used -- move set_widget_value into utils, eventually need to change all the plugins -to use this one to be consisten - - -2005.01.07 ----------- -- think i finally fixed what was causing all the crashes, for some reason i was -unparenting widgets instead of removing them from their containers -- ready for 0.4.2, the real release of the 0.4.x series -- had to revert some changes in setup.py to make py2exe work for win32 -- small fix for the libxml2/formatter problem - - -2005.01.04 ----------- -- some 'correctness' fixes, like giving dialogs parents if applicable -- forgot to package the 'tag' plugin which is a major feature for 0.4.x, yes -i'm an idiot -- tweaks to the example xsl stylesheet in the formatter plugin -(labels.xsl, larger_label.xsl) -- removed all signs of threading code, there's no going back -- the SpeciesMetaEditor now just uses the vbox from the glade file instead -of destroying the dialog it was graciously given by TableEditorDialog only to -replace it by another dialog - - -2005.01.04 ----------- -- fixed bug where editing an existing SpeciesMeta would just create a new -one -- back to deleting dialogs instead of just hiding them -- abcd export and formatter wouldn't work if a Species SpeciesMeta was None - - -2005.01.03 ----------- -- did a terrible job packaging 0.4.0 and probably earlier version, should -be better now -- results in the search view are now sorted alphabetically - - -2005.01.02 ----------- -- drastically improved csv export speed by about a million percent by -using map() -- some fixes for win32, mostly works now -- ready for 0.4.0 -- released 0.4.0 -- tried to get rid of that annoying dialog caused by the logger -- rearranged the sys.path to put library.zip in front when using py2exe so -that libxml2 get imported correctly, this fixes the formatter on win32 - - -2005.12.31 ----------- -- small regression fix for opening databases created with a version different -from the version of Bauble you're using -- properly handle exception thrown when importing csv files - - -2005.12.30 ----------- -- you can now do 'OR'ed searches with by separting values with a comma, -e.g 2004.0001,2004.0002 would give you both accessions with those acc_id's - - -2005.12.28 ----------- -- fixed datetime issues with the CollectionEditor -- change TreeViewEditorDialog.commit_changes again to just iterate of the model -in the view and call _transform_row on each row in the model instead of -calling _set_value_from_widgets in start() -- if everything doesn't get successfully committed in a TreeViewEditorDialog -then desensitize those rows that were committed correctly and reshow the dialog -- removed 'Preferences' from the Edit menu until we get some preferences tabs -- forgot to commit plugin\tag\tag.glade to svn -- too many fixes to name, i think we're ready for 0.4.0, just have to test on -Windows - - -2005.12.26 ----------- -- got fed up with connections and transactions behaving differently between -postgres and sqlite so i changed everything that accesses the database to use -transactions - - -2005.12.23 ----------- -- fixed bug when creating Tag tables -- think i fixed the problem with transaction and ghost data by -setting cacheValues=True -- a large refactoring of TableEditor, TreeViewEditor and now TableEditorDialog -- refresh search view after creating tables -- fixes a bug importing csv tables where we pass in more than one filename to -csv.start() and the file has the id's included in the rows - - -2005.12.22 ----------- -- editing SingleJoin and MultipleJoin columns now work -- creating a column in a TreeViewEditorDialog that's not a column in the table -is now much easier -- lots of fixes in speciesmeta.py -- preparing for a release soon -- too many fixes to list - - -2005.12.20 ----------- -- columns that have external editors now have a star(*) in their header -- think i need to rethink this whole multiple join editors on columns - - -2005.12.18 ----------- -- synonym editors work, now just have to finish the VernacularNameEditor - - -2005.12.17 ----------- -- editing multiple join columns now seems to be pretty stable, just have to -finish the GenusSynonym, SpeciesSynonym and VernacularName tables and editors -- check that plugins, views, tool, editors and tables are subclasses of the -appropriate types - - -2005.12.15 ----------- -- change editor.text_values_before_commit to pre_commit_hook -- editing multiple join columns somewhat working though alot of things are -still broke i'm sure - - -2005.12.13 ----------- -- explicitly set the cascade on most database objects to help keep the -database from getting dangling references incase something is deleted -- show a dialog in case removing an item from the search view fails - - -2005.12.10 ----------- -- some spring cleaning of old, unused code -- reworked tag schemas, the previous ones were an embarassment to all thats -good and decent in the world -- tagging results in the search view should now work -- some UI love -- forgot the add conn_mgr.glade to svn -- had to remove some duplicate genus entries from Genus.txt until we get -the synonyms better sorted out -- refresh the search view after adding or removing items from the results - - -2005.12.09 ----------- -- major overhaul on the connection manager, now (mostly) uses glade - - -2005.12.08 ---------- -- started work on tag support in plugins\tag, the db schema seems to be set -and tagging working, just need to create an interface for it -- field Genus.genus is now an alternateID, probably more schema changes coming -soon so we can get everything in a relatively stable state - - -2005.12.02 ---------- -- lots of work on connecting the database to the infoboxes and creating -infoboxes for those database types that didn't have - - -2005.12.01 ---------- -- fixes for formatters -- fixes to use vernacular_name instead of default_vernacular_name in abcd.py -- Accession and Plant now have markup() which give the species name -- some searchview fixes -- tagged 0.3.0 and forgot to uncomment the schema changes, tag 0.3.1 -- fixed problem with exporting CSV that was only in 0.3.0 so no worries -- changed setup.py to use version_str from bauble\__init__.py so we only -have to set the version in one place - - -2005.11.26 ---------- -- hopefully fixes some unstableness by not deleting the dialog of a -TreeViewEditorDialog -- changed the model again to add a notes column to both Plant and -Accession -- bumped revision to 0.3.0 because of change to the model - - -2005.11.24 ---------- -- fixed editing a species giving a message as if you were adding a new -one -- fixed markup tag on species - - -2005.11.23 ---------- -- added some more safety check that you're not connected to a corrupt -- fixed a problem when on committing multiple items in an editor -- csv export is painfully slow, need to do something about it -- fixe for expanding a species -- 0.2.0 and 0.2.1 was tagged but not release -- released 0.2.2 - - -2005.11.23 ---------- -- changed version to 0.2.0 since we're not using the VernacularName table -at the moment altough there was never a way to edit it -- some fixes for the connection manager so it acts the way you would -expect it to, could still use some love -- - -2005.11.23 --------- -- remove most of the null values from the EnumCols -- gave up on the VernacularName table and editor at the moment and just -made a Species.vernacular_name UnicodeCol - - -2005.11.22 ---------- -- forgot to fix the VernacularName editor -- made ABCD export and more xml safe - - -2005.11.20 ---------- -- fixed bug when trying to cancel importing CSV files -- the combined plant_id and accession_id of Plant now have to be unique -- removed most of the None default values from the EnumCols -- release 0.1.1 - - -2005.11.19 ---------- -- fixed some logic in editor.py so that the editor dialog acts as expected -when you close it -- fixed the donor editor so it works correctly -- registered the 'donor' and 'don' keywords for the search view -- made some dummy classes for DonorInfoBox and its expanders, now it just -needs to be filled in -- Ctrl-l now correctly gives focus to the search entry, to do this i had to -move the part that sets the current_view in the gui into app.main() -- other small fixes i can't remember -- disabled the MySQL importer -- a new table was added to the database to keep information about the database, -right now it just hold the version of the database and the datetime it was -created -- will give a warning if trying to connect to a database with different -major and minor numbers than the software -- will not connect to a database that doesn't have a 'bauble' table in the -database -- fixed some win32 problems -- fixed problem with create the first database at a connection -- message dialog from utils now accept markup -- fixed a problem in imex_csv when creating a database before the gui -has been started -- changed setup.py to use the new formatter module instead of -the old labels ones -- released 0.1.0 - - -2005.11.13 ---------- -- fixed adding donors from the donation editor - - -2005.11.12 ---------- -- searchview parser now uses pyparser and can now handle more complex queries -though some work still needs to be done - - -2005.11.5 ----------- -- lots of fixes related to the Donor table and DonorEditor - -2005.11.3 ----------- -- fixed completion bug so that the selected value is inserted into the proper -row - - -2005.11.2 ----------- -- editors should be fixed for the most part but i'm sure they still need some -polish -- invoking an editor inside an editor to edit a single join work now -- editors now set sqlhub.processConnection to the editors transaction so that -all operations that happend while something is being edited can be rolled -backed, this doesn't seem to cause any problems and is the best way to keep -from getting straggling data such as collection data not associated with -an accession -- need alot of API cleanup -- commited r114 -- remove TableEditorDialog, i don't think its really a useful abstraction -- alot of code cleanup and removing debugging code and old irrelevant stuff -- committed r115 -- just before i committed i noticed that there's a problem with editing -multiple values in a treevieweditor dialog with completion, it seems that -only the first row gets set no matter which row is being edited -- there also seem to be a problem with the accession editor that causes it to -randomly crash, usually when entering the species name - - -2005.11.1 ----------- -- editors now take keyword argument connection - - -2005.10.29 ----------- -- the editor start method no longer commits your changes, whoever invokes -the editor is responsible or commiting the changes -- tried to simplify TreeViewEditorDialog.commit_changes -- the editing the single joins are broken at the moment - - -2005.10.28 ----------- -- still doing some work on external editors, still broken but closer - - -2005.10.27 ----------- -- got external editors working for SingleJoins, its far from perfect yet but its -a first pass, e.g. right now you can create species_meta for a species table -but you can't edit it later -- external editors can now signal that changes were made so the dirty flag can -be properly set on the editor -- commited r111 -- update species_infobox to reflect species meta - -2005.10.25 ----------- -- changed Plantnames to Species -- added a SpeciesMeta table to hold extra information about a species such -as distribution and created an SpeciesMetaEditor - - -2005.10.23 ----------- -- more work on XSL formatter plugin, should work now - - -2005.10.21 ----------- -- canged preferences to use python's ConfigParse with a dict interfase, the -prefs API should be the same as before but the config file format is no longer -compatible, the new format uses an ini type syntax -- added a generic XSL formatter plugin, though not finished yet -- moved main_is_frozen to bauble.__init__.py - - -2005.10.15 ----------- -- fixes in latitude/longitude handling in the CollectionEditor dialog as well -as in the Collection infobox -- ** dates still don't work in the CollectionEditor -- removed Plantname.supfam,subgen and subgen_rank -- got the great idea to create a 'CHANGES' files and added to version control -- see revision 106 for other things for the day diff --git a/README.rst b/README.rst index ec124da3e..962221d06 100644 --- a/README.rst +++ b/README.rst @@ -12,16 +12,16 @@ travis pypi coveralls ======== ======== ============ =========== =========== =========== =========== =========== =========== =========== =========== -Spanish Portuguese French German Dutch Italian Tchech Sweedish +Spanish Portuguese French Ukrainian Hungarian Italian Tchech Sweedish =========== =========== =========== =========== =========== =========== =========== =========== -|trans-es| |trans-pt| |trans-fr| |trans-de| |trans-nl| |trans-it| |trans-cs| |trans-sv| +|trans-es| |trans-pt| |trans-fr| |trans-uk| |trans-hu| |trans-it| |trans-cs| |trans-sv| =========== =========== =========== =========== =========== =========== =========== =========== .. |trans-es| image:: https://hosted.weblate.org/widgets/ghini/es/svg-badge.svg -.. |trans-pt| image:: https://hosted.weblate.org/widgets/ghini/pt_BR/svg-badge.svg +.. |trans-pt| image:: https://hosted.weblate.org/widgets/ghini/pt/svg-badge.svg .. |trans-fr| image:: https://hosted.weblate.org/widgets/ghini/fr/svg-badge.svg -.. |trans-de| image:: https://hosted.weblate.org/widgets/ghini/de/svg-badge.svg -.. |trans-nl| image:: https://hosted.weblate.org/widgets/ghini/nl/svg-badge.svg +.. |trans-uk| image:: https://hosted.weblate.org/widgets/ghini/uk/svg-badge.svg +.. |trans-hu| image:: https://hosted.weblate.org/widgets/ghini/hu/svg-badge.svg .. |trans-it| image:: https://hosted.weblate.org/widgets/ghini/it/svg-badge.svg .. |trans-cs| image:: https://hosted.weblate.org/widgets/ghini/cs/svg-badge.svg .. |trans-sv| image:: https://hosted.weblate.org/widgets/ghini/sv/svg-badge.svg diff --git a/bauble/editor.py b/bauble/editor.py index a2ee8bedd..649b3ebad 100755 --- a/bauble/editor.py +++ b/bauble/editor.py @@ -1206,7 +1206,7 @@ def commit_changes(self): ''' objs = list(self.session) try: - self.session.flush() + self.session.commit() try: bauble.gui.get_view().update() except Exception, e: diff --git a/bauble/plugins/garden/acc_infobox.glade b/bauble/plugins/garden/acc_infobox.glade index 2321caf13..6fc75ea6f 100644 --- a/bauble/plugins/garden/acc_infobox.glade +++ b/bauble/plugins/garden/acc_infobox.glade @@ -104,8 +104,6 @@ True - 1 - 2 GTK_FILL @@ -126,8 +124,6 @@ 1 2 - 1 - 2 GTK_FILL @@ -417,6 +413,8 @@ True + 1 + 2 GTK_FILL GTK_FILL @@ -431,16 +429,12 @@ 1 2 + 1 + 2 GTK_FILL GTK_FILL - - - - - - False @@ -789,7 +783,9 @@ False 1 Date collected: - + + + 6 @@ -819,7 +815,9 @@ False 1 Collection ID: - + + + 7 @@ -834,7 +832,9 @@ False 1 Location: - + + + GTK_FILL @@ -847,7 +847,9 @@ False 1 Latitude: - + + + 1 @@ -862,7 +864,9 @@ False 1 Longitude: - + + + 2 @@ -958,7 +962,9 @@ True False Habitat - + + + @@ -1002,7 +1008,9 @@ True False Notes - + + + @@ -1021,7 +1029,9 @@ True False Collection - + + + diff --git a/bauble/plugins/garden/accession.py b/bauble/plugins/garden/accession.py index 70d0de9ef..457929678 100755 --- a/bauble/plugins/garden/accession.py +++ b/bauble/plugins/garden/accession.py @@ -457,6 +457,43 @@ def after_update(self, mapper, conn, instance): None: '' } +accession_type_to_plant_material = { + #u'Plant': _('Planting'), + U'BBPL': u'Plant', + u'BRPL': u'Plant', + u'PLNT': u'Plant', + u'SEDL': u'Plant', + #u'Seed': _('Seed/Spore'), + u'SEED': u'Seed', + u'SPOR': u'Seed', + u'SPRL': u'Seed', + #u'Vegetative': _('Vegetative Part'), + u'BUDC': u'Vegetative', + u'BUDD': u'Vegetative', + u'BULB': u'Vegetative', + u'CLUM': u'Vegetative', + u'CORM': u'Vegetative', + u'DIVI': u'Vegetative', + u'GRAF': u'Vegetative', + u'LAYE': u'Vegetative', + u'PSBU': u'Vegetative', + u'RCUT': u'Vegetative', + u'RHIZ': u'Vegetative', + u'ROOC': u'Vegetative', + u'ROOT': u'Vegetative', + u'SCIO': u'Vegetative', + u'TUBE': u'Vegetative', + u'URCU': u'Vegetative', + u'BBIL': u'Vegetative', + u'VEGS': u'Vegetative', + u'SCKR': u'Vegetative', + #u'Tissue': _('Tissue Culture'), + u'ALAY': u'Tissue', + #u'Other': _('Other'), + u'UNKN': u'Other', + None: None + } + def compute_serializable_fields(cls, session, keys): result = {'accession': None} @@ -1756,10 +1793,7 @@ def __init__(self, model, view): self.session = object_session(model) self._original_code = self.model.code self.current_source_box = None - model.create_plant = False - self.has_plants = len(model.plants) > 0 - view.widget_set_sensitive('intended_loc_create_plant_checkbutton', not self.has_plants) # set the default code and add it to the top of the code formats self.populate_code_formats(model.code or '') @@ -1875,10 +1909,6 @@ def on_response(button, response): self.view.connect(self.view.widgets.acc_recvd_type_comboentry.child, 'changed', self.on_recvd_type_entry_changed) - # TODO: could probably replace this by just passing a valdator - # to assign_simple_handler...UPDATE: but can the validator handle - # adding a problem to the widget...if we passed it the widget it - # could self.view.connect('acc_code_entry', 'changed', self.on_acc_code_entry_changed) @@ -1915,18 +1945,28 @@ def on_response(button, response): self.model, self.view, self, self, b, w), self.view.widgets.acc_species_entry) + self.has_plants = len(model.plants) > 0 + view.widget_set_sensitive('intended_loc_create_plant_checkbutton', not self.has_plants) + def refresh_create_plant_checkbutton_sensitivity(*args): + if self.has_plants: + view.widget_set_sensitive('intended_loc_create_plant_checkbutton', False) + return + location_chosen = bool(self.model.intended_location) + has_quantity = self.model.quantity_recvd and bool(int(self.model.quantity_recvd)) or False + view.widget_set_sensitive('intended_loc_create_plant_checkbutton', has_quantity and location_chosen) + self.assign_simple_handler( 'acc_quantity_recvd_entry', 'quantity_recvd') + self.view.connect_after('acc_quantity_recvd_entry', 'changed', + refresh_create_plant_checkbutton_sensitivity) self.assign_simple_handler('acc_id_qual_combo', 'id_qual', editor.UnicodeOrNoneValidator()) self.assign_simple_handler('acc_private_check', 'private') from bauble.plugins.garden import init_location_comboentry - def on_loc1_select(value): self.set_model_attr('intended_location', value) - if not self.has_plants: - view.widget_set_sensitive('intended_loc_create_plant_checkbutton', bool(value)) + refresh_create_plant_checkbutton_sensitivity() init_location_comboentry( self, self.view.widgets.intended_loc_comboentry, @@ -1939,6 +1979,7 @@ def on_loc2_select(value): on_loc2_select, required=False) self.refresh_sensitivity() + refresh_create_plant_checkbutton_sensitivity() if self.model not in self.session.new: self.view.widgets.acc_ok_and_add_button.set_sensitive(True) @@ -2443,7 +2484,8 @@ def commit_changes(self): logger.debug('creating plant for new accession') accession = self.model location = accession.intended_location - plant = Plant(accession=accession, code=u'1', quantity=accession.quantity_recvd, location=location) + plant = Plant(accession=accession, code=u'1', quantity=accession.quantity_recvd, location=location, + acc_type=accession_type_to_plant_material.get(self.model.recvd_type)) self.session.add(plant) return super(AccessionEditor, self).commit_changes() diff --git a/bauble/plugins/garden/plant_infobox.glade b/bauble/plugins/garden/plant_infobox.glade index f66ccb85a..fabdd0aa6 100644 --- a/bauble/plugins/garden/plant_infobox.glade +++ b/bauble/plugins/garden/plant_infobox.glade @@ -130,7 +130,7 @@ True 1 - <b>Accession Type:</b> + <b>Plant Material:</b> True diff --git a/bauble/plugins/plants/__init__.py b/bauble/plugins/plants/__init__.py index e71f6dc88..429698ba2 100755 --- a/bauble/plugins/plants/__init__.py +++ b/bauble/plugins/plants/__init__.py @@ -198,10 +198,10 @@ def update(self): ssn = db.Session() q = ssn.query(bauble.meta.BaubleMeta) - q = q.filter(bauble.meta.BaubleMeta.name.startswith(u'stqr_')) + q = q.filter(bauble.meta.BaubleMeta.name.startswith(u'stqr')) name_tooltip_query = dict( (int(i.name[5:]), (i.value.split(':', 2))) - for i in q.all() if i.name[4] == '_') + for i in q.all()) ssn.close() for i in range(1, 11): @@ -379,7 +379,13 @@ def init(cls): # suggest some useful defaults for stored queries import bauble.meta as meta session = db.Session() - init_marker = meta.get_default(u'stqr-initialized', u'false', session) + default = u'false' + q = session.query(bauble.meta.BaubleMeta).filter(bauble.meta.BaubleMeta.name.startswith(u'stqr-')) + for i in q.all(): + default = i.name + session.delete(i) + session.commit() + init_marker = meta.get_default(u'stqv_initialized', default, session) if init_marker.value == u'false': init_marker.value = u'true' for index, name, tooltip, query in [ diff --git a/bauble/plugins/plants/default/keepordiscard.txt b/bauble/plugins/plants/default/keepordiscard.txt new file mode 100644 index 000000000..a5cbf11d8 --- /dev/null +++ b/bauble/plugins/plants/default/keepordiscard.txt @@ -0,0 +1,780 @@ +"Abola","Adans." +25103,"Abola","Adans.",214 + +"Abola","Lindl." +25104,"Abola","Lindl.",345 + +"Agyneia","L." +24788,"Agyneia","L.",190 + +"Agynaia","Hassk." + +"Anguria","Mill." +24659,"Anguria","Mill.",133 + +"Anguria","Jacq." +24658,"Anguria","Jacq.",133 + +"Antillanorchis","Garay" +16768,"Antillanorchis","Garay",345 + +"Asprella","Host" +25146,"Asprella","Host",214 + +"Asprella","Schreb." +25145,"Asprella","Schreb.",214 + +"Asprella","Willd." + +"Audibertia","Benth." + +"Azalea","L." +9591,"Azalea","L.",183 + +"Beesha","Kunth" +25158,"Beesha","Kunth",214 + +"Beesha","Munro" +25159,"Beesha","Munro",214 + +"Bellevalia","Lapeyr." +24811,"Bellevalia","Lapeyr.",241 + +"Bellevalia","Delile ex Endl." + +"Bellevalia","Scop." + +"Bernhardia","Willd. ex Bernh." +20194,"Bernhardia","Willd. ex Bernh.",395 + +"Bessera","Schult. f." + +"Bessera","Schult." +24040,"Bessera","Schult.",17 + +"Bessera","Spreng." +24041,"Bessera","Spreng.",190 + +"Bessera","Vell." + +"Borya","Montrouz. ex Beauvis." + +"Borya","Willd." +24114,"Borya","Willd.",338 + +"Borya","Labill." +24113,"Borya","Labill.",30 + +"Brizopyrum","Link" +25165,"Brizopyrum","Link",214 + +"Brizopyrum","Stapf" +25166,"Brizopyrum","Stapf",214 + +"Broteroa","DC." +12796,"Broteroa","DC.",265 + +"Broteroa","Kuntze" +3651,"Broteroa","Kuntze",118 + +"Broteroa","DC." +12796,"Broteroa","DC.",265 + +"Broteroa","Kuntze" +3651,"Broteroa","Kuntze",118 + +"Caldasia","Lag." +26501,"Caldasia","Lag.",491 + +"Caldasia","Mutis" + +"Caldasia","Humb. ex Willd." + +"Campelia","Rich." +8338,"Campelia","Rich.",117 + +"Camptocarpus","Decne." +24167,"Camptocarpus","Decne.",40 + +"Camptocarpus","K. Koch" + +"Cavanilla","Salisb." + +"Cavanilla","Thunb." +24831,"Cavanilla","Thunb.",251 + +"Cavanilla","Vell." +24830,"Cavanilla","Vell.",190 + +"Cavanilla","J.F. Gmel." + +"Ceramanthus","Hassk." +24170,"Ceramanthus","Hassk.",190 + +"Ceramanthus","(Kunze) Malme" +24169,"Ceramanthus","(Kunze) Malme",40 + +"Ceramanthus","Hook. f. ex Post & Kuntze" + +"Ceranthera","Elliott" +25595,"Ceranthera","Elliott",265 + +"Ceranthera","Raf." +25596,"Ceranthera","Raf.",440 + +"Ceranthera","P. Beauv." + +"Chilenia","Backeb." + +"Cieca","Medik." +24842,"Cieca","Medik.",356 + +"Cieca","Adans." +24841,"Cieca","Adans.",190 + +"Cincinalis","Gled." +23949,"Cincinalis","Gled.",151 + +"Cincinalis","Gled. ex Desv." +23948,"Cincinalis","Gled. ex Desv.",8 + +"Cohnia","Rchb. f." + +"Cohnia","Kunth" +24014,"Cohnia","Kunth",11 + +"Courtoisia","Nees" +24688,"Courtoisia","Nees",143 + +"Courtoisia","Rchb." +24689,"Courtoisia","Rchb.",385 + +"Courtoisia","Marchand" + +"Crantzia","Vell." + +"Crantzia","Kuntze" + +"Crantzia","Nutt." +24358,"Crantzia","Nutt.",491 + +"Crantzia","Scop." +24357,"Crantzia","Scop.",203 + +"Crantzia","Sw." +24356,"Crantzia","Sw.",76 + +"Crantzia","Vell." + +"Cryptanthus","Otto & A. Dietr." +6946,"Cryptanthus","Otto & A. Dietr.",69 + +"Cryptanthus","Osbeck" +12759,"Cryptanthus","Osbeck",265 + +"Cryptanthus","Nutt. ex Moq." + +"Cyclostigma","Hochst. ex Endl." + +"Cyclostigma","Klotzsch" + +"Cyclostigma","Phil." +24857,"Cyclostigma","Phil.",440 + +"Devauxia","R. Br." + +"Devauxia","Kunth" +24531,"Devauxia","Kunth",214 + +"Diplanthera","Banks & Sol. ex R. Br." + +"Diplanthera","Raf." +24293,"Diplanthera","Raf.",345 + +"Diplanthera","Schrank" + +"Diplanthera","Thouars" + +"Diplanthera","Gled." + +"Dombeya","Cav." +24295,"Dombeya","Cav.",449 + +"Dombeya","L'Hér." + +"Dombeya","Lam." + +"Dondia","Adans." +24534,"Dondia","Adans.",105 + +"Dondia","Spreng." +24535,"Dondia","Spreng.",491 + +"Elaterium","Jacq." +24669,"Elaterium","Jacq.",133 + +"Elaterium","Mill." +24668,"Elaterium","Mill.",133 + +"Elutheria","L." + +"Elutheria","M. Roem." + +"Elutheria","P. Browne" + +"Fagelia","DC." + +"Fagelia","Schwencke" +7365,"Fagelia","Schwencke",678 + +"Ferdinanda","Lag." +4249,"Ferdinanda","Lag.",118 + +"Ferdinanda","Benth. & Hook. f." +5838,"Ferdinanda","Benth. & Hook. f.",61 + +"Ferdinanda","Lag." +4249,"Ferdinanda","Lag.",118 + +"Festucaria","Heist. ex Fabr." + +"Festucaria","Link" +25259,"Festucaria","Link",214 + +"Filix","Adans." +24709,"Filix","Adans.",504 + +"Filix","Ludw." +24705,"Filix","Ludw.",151 + +"Filix","Ség." + +"Furcaria","Boivin ex Baill." +24883,"Furcaria","Boivin ex Baill.",190 + +"Furcaria","Desv." +24884,"Furcaria","Desv.",354 + +"Furcaria","Kostel." + +"Gamosepalum","Hausskn." +6309,"Gamosepalum","Hausskn.",130 + +"Gamosepalum","Schltr." +15833,"Gamosepalum","Schltr.",345 + +"Gerardia","Benth." +23905,"Gerardia","Benth.",1 +23906,"Gerardia","Benth.",433 + +"Gerardia","L." + +"Gramen","Ség." + +"Gramen","Krause" +25275,"Gramen","Krause",214 + +"Gramen","W. Young" + +"Grislea","L." +24545,"Grislea","L.",116 + +"Grislea","Loefl." +24546,"Grislea","Loefl.",294 + +"Guidonia","Griseb." + +"Guidonia","P. Browne" + +"Guidonia","Mill." +25045,"Guidonia","Mill.",195 + +"Gutenbergia","Sch.Bip. ex Sch.Bip." + +"Gutenbergia","Walp." +21027,"Gutenbergia","Walp.",414 + +"Gutenbergia","Sch. Bip." +5494,"Gutenbergia","Sch. Bip.",118 + +"Gymnopteris","Bernh." +23961,"Gymnopteris","Bernh.",8 + +"Gymnopteris","C. Presl" + +"Hariota","Adans." +24419,"Hariota","Adans.",79 + +"Hariota","DC." +24418,"Hariota","DC.",79 + +"Harrisonia","Neck." + +"Harrisonia","R. Br. ex A. Juss." + +"Harrisonia","Hook." +24194,"Harrisonia","Hook.",40 + +"Harrisonia","Spreng." + +"Heteropteris","Fée" + +"Heteropteris","Kunth" +23964,"Heteropteris","Kunth",297 + +"Hewardia","J. Sm." + +"Hewardia","Hook." + +"Honckenya","Ehrh." +7748,"Honckenya","Ehrh.",95 + +"Honckenya","Bartl." + +"Honckenya","Willd. ex Cothen." + +"Honkenya","Willd. ex Cothen." +13858,"Honkenya","Willd. ex Cothen.",298 + +"Hypodematium","Kunze" +26071,"Hypodematium","Kunze",504 + +"Hypodematium","A. Rich." + +"Hypodematium","A. Rich." + +"Ischnanthus","(Engl.) Tiegh." +13476,"Ischnanthus","(Engl.) Tiegh.",290 + +"Ischnanthus","Roem. & Schult." +18504,"Ischnanthus","Roem. & Schult.",214 + +"Isolatocereus","(Backeb.) Backeb." +7256,"Isolatocereus","(Backeb.) Backeb.",79 + +"Johnsonia","Mill." + +"Johnsonia","Adans." +24133,"Johnsonia","Adans.",310 + +"Johnsonia","R. Br." + +"Johnsonia","R. Br." + +"Kentia","Blume" +24101,"Kentia","Blume",29 +24102,"Kentia","Blume",349 + +"Kentia","Adans." + +"Keppleria","Martius ex Endlicher" + +"Keppleria","Meisn." +26409,"Keppleria","Meisn.",349 + +"Kniphofia","Moench" +24269,"Kniphofia","Moench",42 + +"Kniphofia","Scop." +24270,"Kniphofia","Scop.",116 + +"Kniphofia","Moench" +24269,"Kniphofia","Moench",42 + +"Kotchubaea","Regel ex Hook. f." + +"Kotchubaea","Fisch. ex C. DC." + +"Lachnostoma","Kunth" +2214,"Lachnostoma","Kunth",32 + +"Lachnostoma","Hassk." +21052,"Lachnostoma","Hassk.",414 + +"Lachnostoma","Korth." + +"Lagotis","Gaertn." +26641,"Lagotis","Gaertn.",433 + +"Lagotis","E. Mey." + +"Laugeria","Vahl ex J. D. Hooker in Bentham & J. D. Hooker" + +"Laugeria","L." +20897,"Laugeria","L.",414 + +"Laurembergia","P.J. Bergius" + +"Laurembergia","Baill." +10115,"Laurembergia","Baill.",190 + +"Laxmannia","Forst. & Forst." + +"Laxmannia","J.R.Forst. & G.Forst." + +"Laxmannia","Forst." + +"Laxmannia","J.R. Forst. & G. Forst." + +"Laxmannia","S.G. Gmel. ex Trin." + +"Laxmannia","Schreb." + +"Laxmannia","R. Br." + +"Lecanium","C. Presl" + +"Lecanium","Reinw." +25570,"Lecanium","Reinw.",388 + +"Lecanthus","Wedd." +25078,"Lecanthus","Wedd.",492 + +"Lepidostemon","Hook. f. & Thomson" +6705,"Lepidostemon","Hook. f. & Thomson",130 + +"Lepidostemon","Hassk." +8461,"Lepidostemon","Hassk.",121 + +"Lepidostemon","Lem." + +"Leptopus","Decne." +24924,"Leptopus","Decne.",190 + +"Leptopus","Klotzsch & Garcke" +24925,"Leptopus","Klotzsch & Garcke",190 + +"Leucorchis","Blume" +16156,"Leucorchis","Blume",345 + +"Leucorchis","E. Mey." +16649,"Leucorchis","E. Mey.",345 + +"Lindleya","Nees" +26568,"Lindleya","Nees",468 + +"Lindleya","Kunth" +26567,"Lindleya","Kunth",413 + +"Lindleyella","Schltr." +26113,"Lindleyella","Schltr.",345 + +"Lindleyella","Rydb." +26114,"Lindleyella","Rydb.",413 + +"Llavea","Lag." +23972,"Llavea","Lag.",8 + +"Llavea","Liebm." +23973,"Llavea","Liebm.",195 + +"Lloydia","Benth. & Hook.f." + +"Lloydia","Salisb. ex Rchb." +13322,"Lloydia","Salisb. ex Rchb.",280 + +"Lloydia","Delile" +18649,"Lloydia","Delile",214 + +"Lonchitis","L." +24712,"Lonchitis","L.",151 + +"Lonchitis","Bubani" +24713,"Lonchitis","Bubani",345 + +"Lonchitis","L." +24712,"Lonchitis","L.",151 + +"Lophiocarpus","Turcz." +24033,"Lophiocarpus","Turcz.",372 + +"Lophiocarpus","(Kunth) Miq." +24032,"Lophiocarpus","(Kunth) Miq.",16 + +"Macraea","Hook.f." +24568,"Macraea","Hook.f.",118 + +"Macraea","Hook. f." + +"Macraea","Wight" +24569,"Macraea","Wight",190 + +"Macraea","Lindl." + +"Macrocalyx","Costantin & Poiss." + +"Macrocalyx","Miers ex Lindl." + +"Macrocalyx","Tiegh." +25682,"Macrocalyx","Tiegh.",290 + +"Macrocalyx","Trew" + +"Maughania","J. Saint-Hilaire" + +"Maughania","N.E. Br." + +"Messerschmidia","L. ex Hebenstr." + +"Messerschmidia","Roem. & Schult." +24323,"Messerschmidia","Roem. & Schult.",66 + +"Meyenia","Backeb." +23911,"Meyenia","Backeb.",79 + +"Meyenia","Schltdl." +23912,"Meyenia","Schltdl.",440 + +"Meyenia","Nees" +23910,"Meyenia","Nees",1 + +"Monocera","Elliott" +24750,"Monocera","Elliott",214 + +"Monocera","Jack" +24749,"Monocera","Jack",174 + +"Moorea","Lem." +25362,"Moorea","Lem.",214 + +"Moorea","Rolfe" +25363,"Moorea","Rolfe",345 + +"Nelitris","Gaertn." +25780,"Nelitris","Gaertn.",414 + +"Octomeria","R. Br." +17332,"Octomeria","R. Br.",345 + +"Octomeria","D. Don" + +"Octomeria","Pfeiff." +21074,"Octomeria","Pfeiff.",414 + +"Oetosis","Neck. ex Greene" +26518,"Oetosis","Neck. ex Greene",500 + +"Oetosis","Neck. ex Kuntze" +26517,"Oetosis","Neck. ex Kuntze",388 + +"Onychium","Kaulf." +23984,"Onychium","Kaulf.",8 + +"Onychium","Blume" +23985,"Onychium","Blume",345 + +"Onychium","Reinw." +23986,"Onychium","Reinw.",388 + +"Panicularia","Heist. ex Fabr." + +"Panicularia","Colla" +24721,"Panicularia","Colla",155 + +"Pentacoilanthus","Rappa & Camarrone" + +"Petalanthera","Nutt." +23917,"Petalanthera","Nutt.",285 + +"Petalanthera","Raf." +23916,"Petalanthera","Raf.",1 + +"Petalanthera","Nees & Mart." + +"Petalonema","Gilg" +24224,"Petalonema","Gilg",309 + +"Petalonema","Peter" + +"Petalonema","Schltr." +24223,"Petalonema","Schltr.",40 + +"Petalonema","Berk. ex Correns" + +"Peteria","Raf." +21222,"Peteria","Raf.",414 + +"Peteria","A. Gray" +11055,"Peteria","A. Gray",273 + +"Pilocereus","Lem." +24447,"Pilocereus","Lem.",79 + +"Platytaenia","Kuhn" +23995,"Platytaenia","Kuhn",8 + +"Platytaenia","Nevski & Vved." +23996,"Platytaenia","Nevski & Vved.",491 + +"Poranthera","Raf." +24975,"Poranthera","Raf.",214 + +"Poranthera","Rudge" +24974,"Poranthera","Rudge",190 + +"Psammophila","Fourr. ex Ikonn." + +"Psammophila","Schult." +24517,"Psammophila","Schult.",214 + +"Pterilis","Raf." +26531,"Pterilis","Raf.",397 +26532,"Pterilis","Raf.",504 + +"Rapuntium","Mill." +7447,"Rapuntium","Mill.",84 + +"Richea","Labill." + +"Richea","Kuntze" + +"Richea","R. Br." +9722,"Richea","R. Br.",183 + +"Rubeola","Hill" +26667,"Rubeola","Hill",414 + +"Rubeola","Mill." +26668,"Rubeola","Mill.",414 + +"Sagus","Gaertn." +26426,"Sagus","Gaertn.",349 + +"Sagus","Steck" +26427,"Sagus","Steck",349 + +"Salmasia","Schreb." +24540,"Salmasia","Schreb.",107 + +"Salmasia","Bubani" +24541,"Salmasia","Bubani",214 + +"Samyda","L." +25070,"Samyda","L.",310 + +"Samyda","Jacq." +25069,"Samyda","Jacq.",195 + +"Schlechterella","(Schltr.) Hoehne" + +"Schlechterella","K. Schum." + +"Siphonandra","Klotzsch" +9676,"Siphonandra","Klotzsch",183 + +"Siphonandra","Turcz." +20767,"Siphonandra","Turcz.",414 + +"Siphonia","D. Richard ex Schreber" + +"Siphonia","Benth." +25000,"Siphonia","Benth.",414 + +"Skottsbergiella","Epling" +24648,"Skottsbergiella","Epling",265 + +"Slackia","Griff." +25092,"Slackia","Griff.",203 +25093,"Slackia","Griff.",349 + +"Slackia","Griff." +25092,"Slackia","Griff.",203 +25093,"Slackia","Griff.",349 + +"Slackia","Griff." +25092,"Slackia","Griff.",203 +25093,"Slackia","Griff.",349 + +"Stenocalyx","O. Berg" + +"Stenocalyx","Turcz." +25700,"Stenocalyx","Turcz.",297 + +"Stenonia","Didr." +25006,"Stenonia","Didr.",190 + +"Stenonia","Baill." +25005,"Stenonia","Baill.",190 + +"Stilpnophyllum","Hook. f." +21582,"Stilpnophyllum","Hook. f.",414 + +"Sturmia","C.F. Gaertn." + +"Sturmia","Hoppe" +25451,"Sturmia","Hoppe",214 + +"Sturmia","Rchb." + +"Tapeinanthus","Boiss. ex Benth." +24094,"Tapeinanthus","Boiss. ex Benth.",265 + +"Tapeinanthus","Herb." +24093,"Tapeinanthus","Herb.",23 + +"Trichopodium","Lindl." +25653,"Trichopodium","Lindl.",480 + +"Trichopodium","C. Presl" + +"Triodon","DC." +25476,"Triodon","DC.",414 + +"Triodon","Baumg." +25475,"Triodon","Baumg.",214 + +"Triodon","Rich." + +"Tunica","Ludw." +24519,"Tunica","Ludw.",95 + +"Tussacia","Benth." +25095,"Tussacia","Benth.",203 + +"Tussacia","Rchb." + +"Tussacia","Klotzsch ex Beer" + +"Tussacia","Willd. ex Schult. & Schult. f." + +"Viviania","Willd. ex Less." + +"Viviania","Cav." +23726,"Viviania","Cav.",980 + +"Viviania","Willd. ex Less." + +"Viviania","Colla" + +"Viviania","Raddi" + +"Viviania","Raf." + +"Vogelia","J.F. Gmel." + +"Vogelia","Lam." +24656,"Vogelia","Lam.",381 + +"Vogelia","Medik." +24655,"Vogelia","Medik.",130 + +"Wibelia","G.Gaertn., B.Mey. & Scherb." + +"Wibelia","Roehl." + +"Wibelia","Bernh." +24699,"Wibelia","Bernh.",148 + +"Wibelia","Pers." + +"Wibelia","P. G. Gaertner, B. Meyer & Scherbius," + +"Wintera","G. Forst." + +"Wintera","Murray" +27123,"Wintera","Murray",503 + +"Zygostelma","E. Fourn." + +"Zygostelma","Benth." +24257,"Zygostelma","Benth.",40 diff --git a/bauble/plugins/plants/infoboxes.glade b/bauble/plugins/plants/infoboxes.glade index a1d625391..30f727d24 100644 --- a/bauble/plugins/plants/infoboxes.glade +++ b/bauble/plugins/plants/infoboxes.glade @@ -487,7 +487,7 @@ True False 0 - - + - True @@ -505,7 +505,7 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 5 - - + - True True @@ -533,7 +533,7 @@ False 0 10 - - + - True @@ -554,7 +554,7 @@ False - 5 + 6 2 15 8 @@ -609,8 +609,8 @@ 1 2 - 2 - 3 + 3 + 4 GTK_FILL @@ -625,8 +625,8 @@ 1 2 - 3 - 4 + 4 + 5 GTK_FILL @@ -641,8 +641,8 @@ 1 2 - 4 - 5 + 5 + 6 GTK_FILL @@ -684,8 +684,8 @@ True - 2 - 3 + 3 + 4 GTK_FILL @@ -699,8 +699,8 @@ True - 3 - 4 + 4 + 5 GTK_FILL @@ -714,12 +714,43 @@ True - 4 - 5 + 5 + 6 + GTK_FILL + + + + + + True + False + 1 + <b>Living Plants:</b> + True + + + 2 + 3 GTK_FILL + + + True + False + 0 + -- + + + 1 + 2 + 2 + 3 + GTK_FILL + GTK_FILL + + False @@ -1384,7 +1415,6 @@ True True True - False False @@ -1401,7 +1431,6 @@ True True True - False False @@ -1418,7 +1447,6 @@ True True True - False False @@ -1435,7 +1463,6 @@ True True True - False False @@ -1452,7 +1479,6 @@ True True True - False False @@ -1469,7 +1495,6 @@ True True True - False False @@ -1486,7 +1511,6 @@ True True True - False False @@ -1503,7 +1527,6 @@ True True True - False False @@ -1520,7 +1543,6 @@ True True True - False False @@ -1537,7 +1559,6 @@ True True True - False False @@ -1749,7 +1770,6 @@ False True edit stored queries - False False @@ -1800,21 +1820,6 @@ 1 - - - - - - - - - - - - - - - False diff --git a/bauble/plugins/plants/species.py b/bauble/plugins/plants/species.py index 27b64872a..09ca9463f 100755 --- a/bauble/plugins/plants/species.py +++ b/bauble/plugins/plants/species.py @@ -387,6 +387,10 @@ def update(self, row): self.widget_set_value('sp_nplants_data', '%s in %s accessions' % (nplants, nacc_in_plants)) + living_plants = sum(i.quantity for i in session.query(Plant).join('accession', 'species').\ + filter_by(id=row.id).all()) + self.widget_set_value('living_plants_count', living_plants) + class SpeciesInfoBox(InfoBox): diff --git a/bauble/plugins/plants/taxonomy_check.py b/bauble/plugins/plants/taxonomy_check.py index add082f31..c44646f85 100644 --- a/bauble/plugins/plants/taxonomy_check.py +++ b/bauble/plugins/plants/taxonomy_check.py @@ -70,8 +70,13 @@ def species_to_fix(ssn, binomial, author, create=False): return None binomial = utils.to_unicode(binomial) author = utils.to_unicode(author) - gen_epithet, sp_epithet = binomial.split(' ', 1) - return Species.retrieve_or_create( + parts = binomial.split(' ') + if len(parts) == 4: + gen_epithet, sp_epithet, rank, epithet = parts + else: + gen_epithet, sp_epithet = binomial.split(' ', 1) + rank = epithet = None + result = Species.retrieve_or_create( ssn, {'object': 'taxon', 'rank': 'species', 'ht-epithet': gen_epithet, @@ -79,6 +84,12 @@ def species_to_fix(ssn, binomial, author, create=False): 'ht-rank': 'genus', 'author': author}, create=create) + if rank is not None: + result.infrasp1 = epithet + result.infrasp1_rank = rank + result.sp_author = None + result.infrasp1_author = author + return result ACCEPTABLE = 0 diff --git a/bauble/plugins/plants/taxonomy_check_test.py b/bauble/plugins/plants/taxonomy_check_test.py new file mode 100644 index 000000000..384824aae --- /dev/null +++ b/bauble/plugins/plants/taxonomy_check_test.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2018 Mario Frasca . +# +# This file is part of ghini.desktop. +# +# ghini.desktop is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ghini.desktop is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with ghini.desktop. If not, see . +# + +from bauble.test import BaubleTestCase +from taxonomy_check import species_to_fix +from bauble.plugins.plants.family import Family +from bauble.plugins.plants.genus import Genus + + +class TestOne(BaubleTestCase): + + def setUp(self): + super(TestOne, self).setUp() + family = Family(family=u'Amaranthaceae') + genus = Genus(family=family, genus=u'Salsola') + self.session.add_all([family, genus]) + self.session.commit() + + def test_species_author(self): + s = species_to_fix(self.session, u'Salsola kali', u'L.', True) + self.assertEquals(s.sp, u'kali') + self.assertEquals(s.sp_author, u'L.') + self.assertEquals(s.infraspecific_rank, '') + self.assertEquals(s.infraspecific_epithet, '') + self.assertEquals(s.infraspecific_author, '') + + def test_subspecies_author(self): + s = species_to_fix(self.session, u'Salsola kali subsp. tragus', u'(L.) Čelak.', True) + self.assertEquals(s.sp, u'kali') + self.assertEquals(s.sp_author, None) + self.assertEquals(s.infraspecific_rank, u'subsp.') + self.assertEquals(s.infraspecific_epithet, u'tragus') + self.assertEquals(s.infraspecific_author, u'(L.) Čelak.') + + diff --git a/bauble/version.py b/bauble/version.py index a0785b5f0..b22df1e18 100644 --- a/bauble/version.py +++ b/bauble/version.py @@ -21,4 +21,4 @@ # The Ghini version. # major, minor, revision version tuple -version = "1.0.81" # :bump +version = "1.0.82" # :bump diff --git a/data/ghini.desktop b/data/ghini.desktop index dd546c1a7..a16fdcf07 100644 --- a/data/ghini.desktop +++ b/data/ghini.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Encoding=UTF-8 Name=Ghini -Version=1.0.81 # :bump +Version=1.0.82 # :bump Comment=An application for managing botanical collections Terminal=False Icon=ghini diff --git a/doc/conf.py b/doc/conf.py index 2a9351254..094b71a3e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -70,7 +70,7 @@ # The short X.Y version. version = '1.0' # The full version, including alpha/beta/rc tags. -release = '1.0.81' # :bump +release = '1.0.82' # :bump # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/images/parts.svg b/doc/images/parts.svg new file mode 100644 index 000000000..b4dabec7a --- /dev/null +++ b/doc/images/parts.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/installing.rst b/doc/installing.rst index e0f097500..b2caf2524 100644 --- a/doc/installing.rst +++ b/doc/installing.rst @@ -336,17 +336,19 @@ The installation steps on Windows: make changes to your computer. These changes are in the Start Menu only: create the Ghini group, place the Ghini shortcut. -#. download the batch file you will use to stay up-to-date with the - production line you chose to follow: +#. download the batch file, it will help you staying up-to-date: - https://raw.githubusercontent.com/Ghini/ghini.desktop/master/scripts/ghini-update.bat + `ghini-update.bat `_ - if you are on a recent Ghini installation, each time you start the + If you are on a recent Ghini installation, each time you start the program, Ghini will check on the development site and alert you of any newer ghini release within your chosen production line. - any time you want to update your installation, just start the command - prompt and run ``ghini-update.bat``, it will hardly take one minute. + Any time you want to update your installation, just run the + ``ghini-update.bat`` script, it will hardly take one minute. + + How to save a batch file, and how to run it: check the the quite detailed + instructions given for ``devinstall.bat``. If you would like to generate and print PDF reports using Ghini's default report generator then you will need to download and install `Apache FOP diff --git a/doc/use_cases-zadenbank.rst b/doc/use_cases-zadenbank.rst index 1345ea3c6..7696be4f0 100644 --- a/doc/use_cases-zadenbank.rst +++ b/doc/use_cases-zadenbank.rst @@ -113,8 +113,9 @@ directions on how to develop their own database. Right. Quite fair. Let's see… - Say you were requested to deliver 50 seeds of Urtica dioica, 30 of Zea - mays 'Red Marvel', 80 of Oryza sativa, and 30 of Panicum maximum. + Say you were requested to deliver 50 seeds of Parnassia palustris, 30 + of Gentiana pneumonanthe, 80 of Fritillaria meleagris, and 30 of + Hypericum pulchrum. ------------------------- @@ -122,7 +123,7 @@ directions on how to develop their own database. you do have enough, where you have them. You do this per requested species:: - accession where species.genus.epithet=Zea and species.epithet=mays and sum(plants.quantity)>0 + accession where species.genus.epithet=Parnassia and species.epithet=palustris and sum(plants.quantity)>0 Expand in the results pane the ›Accession‹ from which you want to grab the seeds, so you see the corresponding ›Jars‹, highlight one, and tag @@ -132,11 +133,12 @@ directions on how to develop their own database. ›sending‹, but that's only for ease of exposition and further completely irrelevant. - Repeat the task for Urtica dioica, Oryza sativa, Panicum maximum:: + Repeat the task for Gentiana pneumonanthe, Fritillaria meleagris, + Hypericum pulchrum:: - accession where species.genus.epithet=Urtica and species.epithet=dioica and sum(plants.quantity)>0 - accession where species.genus.epithet=Oryza and species.epithet=sativa and sum(plants.quantity)>0 - accession where species.genus.epithet=Panicum and species.epithet=maximum and sum(plants.quantity)>0 + accession where species.genus.epithet=Gentiana and species.epithet=pneumonanthe and sum(plants.quantity)>0 + accession where species.genus.epithet=Fritillaria and species.epithet=meleagris and sum(plants.quantity)>0 + accession where species.genus.epithet=Hypericum and species.epithet=pulchrum and sum(plants.quantity)>0 Again highilight the accession from which you can grab seeds, and hit Ctrl-Y (this tags the highighted row with the active tag). Don't @@ -173,10 +175,10 @@ directions on how to develop their own database. Splitting a plant lets you create a database image of the plant group you just physically created, eg: it lets you subtract 30 items from - the Zea mayx plant (group number one, that is the one in the jar), - and create a new plant group for the same accession. A good practice - would be to specify as ›Location‹ for this new plant the 'out box', - that is, the envelope is on its way to leave the garden. + the Gentiana pneumonanthe plant (group number one, that is the one in + the jar), and create a new plant group for the same accession. A good + practice would be to specify as ›Location‹ for this new plant the 'out + box', that is, the envelope is on its way to leave the garden. Don't forget to delete the temporary 'sending' ›Tag‹. diff --git a/ez_setup.py b/ez_setup.py deleted file mode 100644 index 34b7f0678..000000000 --- a/ez_setup.py +++ /dev/null @@ -1,276 +0,0 @@ -#!/usr/bin/env python -"""Bootstrap setuptools installation - -If you want to use setuptools in your package's setup.py, just include this -file in the same directory with it, and add this to the top of your setup.py:: - - from ez_setup import use_setuptools - use_setuptools() - -If you want to require a specific version of setuptools, set a download -mirror, or use an alternate download directory, you can do so by supplying -the appropriate options to ``use_setuptools()``. - -This file can also be run as a script to install or upgrade setuptools. -""" -import sys -DEFAULT_VERSION = "0.6c9" -DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] - -md5_data = { - 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', - 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', - 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', - 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', - 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', - 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', - 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', - 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', - 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', - 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', - 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', - 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', - 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', - 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', - 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', - 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', - 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', - 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', - 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', - 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', - 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', - 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', - 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', - 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', - 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', - 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', - 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', - 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', - 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', - 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', - 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', - 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', - 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', - 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', -} - -import sys, os -try: from hashlib import md5 -except ImportError: from md5 import md5 - -def _validate_md5(egg_name, data): - if egg_name in md5_data: - digest = md5(data).hexdigest() - if digest != md5_data[egg_name]: - print >>sys.stderr, ( - "md5 validation of %s failed! (Possible download problem?)" - % egg_name - ) - sys.exit(2) - return data - -def use_setuptools( - version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, - download_delay=15 -): - """Automatically find/download setuptools and make it available on sys.path - - `version` should be a valid setuptools version number that is available - as an egg for download under the `download_base` URL (which should end with - a '/'). `to_dir` is the directory where setuptools will be downloaded, if - it is not already available. If `download_delay` is specified, it should - be the number of seconds that will be paused before initiating a download, - should one be required. If an older version of setuptools is installed, - this routine will print a message to ``sys.stderr`` and raise SystemExit in - an attempt to abort the calling script. - """ - was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules - def do_download(): - egg = download_setuptools(version, download_base, to_dir, download_delay) - sys.path.insert(0, egg) - import setuptools; setuptools.bootstrap_install_from = egg - try: - import pkg_resources - except ImportError: - return do_download() - try: - pkg_resources.require("setuptools>="+version); return - except pkg_resources.VersionConflict, e: - if was_imported: - print >>sys.stderr, ( - "The required version of setuptools (>=%s) is not available, and\n" - "can't be installed while this script is running. Please install\n" - " a more recent version first, using 'easy_install -U setuptools'." - "\n\n(Currently using %r)" - ) % (version, e.args[0]) - sys.exit(2) - else: - del pkg_resources, sys.modules['pkg_resources'] # reload ok - return do_download() - except pkg_resources.DistributionNotFound: - return do_download() - -def download_setuptools( - version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, - delay = 15 -): - """Download setuptools from a specified location and return its filename - - `version` should be a valid setuptools version number that is available - as an egg for download under the `download_base` URL (which should end - with a '/'). `to_dir` is the directory where the egg will be downloaded. - `delay` is the number of seconds to pause before an actual download attempt. - """ - import urllib2, shutil - egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) - url = download_base + egg_name - saveto = os.path.join(to_dir, egg_name) - src = dst = None - if not os.path.exists(saveto): # Avoid repeated downloads - try: - from distutils import log - if delay: - log.warn(""" ---------------------------------------------------------------------------- -This script requires setuptools version %s to run (even to display -help). I will attempt to download it for you (from -%s), but -you may need to enable firewall access for this script first. -I will start the download in %d seconds. - -(Note: if this machine does not have network access, please obtain the file - - %s - -and place it in this directory before rerunning this script.) ----------------------------------------------------------------------------""", - version, download_base, delay, url - ); from time import sleep; sleep(delay) - log.warn("Downloading %s", url) - src = urllib2.urlopen(url) - # Read/write all in one block, so we don't create a corrupt file - # if the download is interrupted. - data = _validate_md5(egg_name, src.read()) - dst = open(saveto,"wb"); dst.write(data) - finally: - if src: src.close() - if dst: dst.close() - return os.path.realpath(saveto) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -def main(argv, version=DEFAULT_VERSION): - """Install or upgrade setuptools and EasyInstall""" - try: - import setuptools - except ImportError: - egg = None - try: - egg = download_setuptools(version, delay=0) - sys.path.insert(0,egg) - from setuptools.command.easy_install import main - return main(list(argv)+[egg]) # we're done here - finally: - if egg and os.path.exists(egg): - os.unlink(egg) - else: - if setuptools.__version__ == '0.0.1': - print >>sys.stderr, ( - "You have an obsolete version of setuptools installed. Please\n" - "remove it from your system entirely before rerunning this script." - ) - sys.exit(2) - - req = "setuptools>="+version - import pkg_resources - try: - pkg_resources.require(req) - except pkg_resources.VersionConflict: - try: - from setuptools.command.easy_install import main - except ImportError: - from easy_install import main - main(list(argv)+[download_setuptools(delay=0)]) - sys.exit(0) # try to force an exit - else: - if argv: - from setuptools.command.easy_install import main - main(argv) - else: - print "Setuptools version",version,"or greater has been installed." - print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' - -def update_md5(filenames): - """Update our built-in md5 registry""" - - import re - - for name in filenames: - base = os.path.basename(name) - f = open(name,'rb') - md5_data[base] = md5(f.read()).hexdigest() - f.close() - - data = [" %r: %r,\n" % it for it in md5_data.items()] - data.sort() - repl = "".join(data) - - import inspect - srcfile = inspect.getsourcefile(sys.modules[__name__]) - f = open(srcfile, 'rb'); src = f.read(); f.close() - - match = re.search("\nmd5_data = {\n([^}]+)}", src) - if not match: - print >>sys.stderr, "Internal error!" - sys.exit(2) - - src = src[:match.start(1)] + repl + src[match.end(1):] - f = open(srcfile,'w') - f.write(src) - f.close() - - -if __name__=='__main__': - if len(sys.argv)>2 and sys.argv[1]=='--md5update': - update_md5(sys.argv[2:]) - else: - main(sys.argv[1:]) - - - - - - diff --git a/packages/builddeb.sh b/packages/builddeb.sh index 4cb08e7f4..cc4af3e80 100755 --- a/packages/builddeb.sh +++ b/packages/builddeb.sh @@ -3,7 +3,7 @@ # Requires bzr, devscripts, debhelper packages TOPLEVEL=`pwd` -VERSION="1.0.81" # :bump +VERSION="1.0.82" # :bump TARBALL="bauble-$VERSION.tar.gz" ORIG_TARBALL="bauble_$VERSION.orig.tar.gz" diff --git a/po/es.po b/po/es.po index 728e91679..e4a627410 100644 --- a/po/es.po +++ b/po/es.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: bauble\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-04-14 08:29-0500\n" -"PO-Revision-Date: 2017-11-14 13:27+0000\n" -"Last-Translator: Allan Nordhøy \n" +"PO-Revision-Date: 2018-04-18 18:43+0000\n" +"Last-Translator: seraliam \n" "Language-Team: Spanish \n" "Language: es\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.18-dev\n" +"X-Generator: Weblate 3.0-dev\n" "X-Launchpad-Export-Date: 2013-02-26 05:18+0000\n" #: bauble/btypes.py:87 @@ -343,7 +343,7 @@ msgstr "zona de alto riesgo" #: bauble/plugins/garden/picture_importer.glade:470 msgid "data revision" -msgstr "" +msgstr "1revisión de datos2" #: bauble/plugins/plants/infoboxes.glade:956 msgid "in use" @@ -355,7 +355,7 @@ msgstr "opciones" #: bauble/plugins/garden/picture_importer.glade:352 msgid "parameter definition" -msgstr "" +msgstr "1definición de parámetro2" #: bauble/plugins/plants/infoboxes.glade:943 msgid "total" @@ -540,11 +540,11 @@ msgstr "" #: bauble/plugins/tag/__init__.py:104 msgid "Apply active tag" -msgstr "" +msgstr "Aplicar etiqueta activa" #: bauble/plugins/garden/accession.py:1297 msgid "Are you sure you want to copy this verification to the general taxon?" -msgstr "" +msgstr "¿está seguro que desea copiar esta verificación en el taxón general?" #: bauble/plugins/tag/__init__.py:317 msgid "Are you sure you want to delete the tag \"%s\"?" diff --git a/redev.sh b/redev.sh deleted file mode 100644 index b99b5f930..000000000 --- a/redev.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -git branch --unset-upstream -git push origin ghini-1.0-dev -./scripts/bump_version.py + diff --git a/scripts/build-multiuser.nsi b/scripts/build-multiuser.nsi index 88e0af7c5..746663c92 100755 --- a/scripts/build-multiuser.nsi +++ b/scripts/build-multiuser.nsi @@ -58,7 +58,7 @@ ; Global Name "ghini.desktop" -!define VERSION "1.0.81" ; :bump +!define VERSION "1.0.82" ; :bump !define SRC_DIR "..\dist" !define PRODUCT_NAME "ghini.desktop" Outfile "${PRODUCT_NAME}-${VERSION}-setup.exe" diff --git a/scripts/devinstall.bat b/scripts/devinstall.bat index 5f48680e8..9525973ce 100644 --- a/scripts/devinstall.bat +++ b/scripts/devinstall.bat @@ -40,13 +40,20 @@ ECHO installing dependencies pip install virtualenv 2>NUL virtualenv --system-site-packages .virtualenvs\ghide -ECHO clearing previous checkouts +ECHO clearing previous bauble checkouts for /F "delims=" %%i in ( 'dir /b .virtualenvs\ghide\Lib\site-packages\bauble-*egg' ) do ( rmdir ".virtualenvs\ghide\Lib\site-packages\""%%i" /s/q 2>NUL ) +ECHO clearing previous ghini.desktop checkouts +for /F "delims=" %%i in ( + 'dir /b .virtualenvs\ghide\Lib\site-packages\ghini.desktop-*egg' +) do ( + rmdir ".virtualenvs\ghide\Lib\site-packages\""%%i" /s/q 2>NUL +) + ECHO going to checkout %CHECKOUT% call .virtualenvs\ghide\Scripts\activate.bat mkdir Local\github\Ghini 2>NUL diff --git a/scripts/installer.cfg b/scripts/installer.cfg index 86281d230..c546d74bc 100644 --- a/scripts/installer.cfg +++ b/scripts/installer.cfg @@ -1,6 +1,6 @@ [Application] name=Bauble -version=1.0.81 # :bump +version=1.0.82 # :bump entry_point=bauble:main icon=images/icon.ico diff --git a/scripts/workon b/scripts/workon index a41c10d1d..0bcc98cbf 100755 --- a/scripts/workon +++ b/scripts/workon @@ -7,12 +7,15 @@ then branch=ghini-1.0-dev elif expr "$1" : '[0-9]\+$' >/dev/null then - branch=issue-$1 -else + branch=ghini-issue-$1 +elif expr "$1" : '[0-9]\.[0-9]\+$' >/dev/null +then branch=ghini-$1-dev +else + branch=ghini-$1 fi -venv=$(echo $branch | sed -e 's/ghini/ghide/') +venv=$(echo $branch | sed -e 's/ghini/ghide/' -e 's/→/-/') $ECHO git checkout $branch $ECHO . ~/.virtualenvs/$venv/bin/activate