ghini / ghini.desktop Goto Github PK
View Code? Open in Web Editor NEWplant collections manager (desktop version)
Home Page: http://ghini.github.io/
License: GNU General Public License v2.0
plant collections manager (desktop version)
Home Page: http://ghini.github.io/
License: GNU General Public License v2.0
since a few commits, there is one connection open in the main search view.
this does not do transactions explicitly
so whenever you do one rollback you actually rollback the whole session since you started the program.
#8 is relative to the database change, and it's in milestone 1.1.1
this one is relative to writing the interface putting the new database structure to work.
From @mfrasca on November 16, 2015 1:20
From @mfrasca on April 6, 2015 19:25
a hybrid should be described as a descendant of two taxa, not just flagged as such.
just to fix ideas, an example: you might want to indicate an accession to a taxon which is a hybrid between a masdevalia rosea and a dracula diavola.
hybrids do not need be sterile, so a hybrid could also generate a new hybrid if mixed with an other taxon.
not all taxa can be hybridized with each other, generally the parent taxa of a hybrid will belong to the same familia, subfamilia, tribus, or subtribus. maybe a warning could be issued if the two parents mismatch at too high a rank.
marking as 'prio:high' because this is really urgent if you want to represent a collection like the one at Quito, particularly dedicated to Orchidaceae.
Copied from original issue: mfrasca/bauble.classic#46
Copied from original issue: Bauble/bauble.classic#179
From @mfrasca on December 8, 2015 19:55
Brassocattleya and Dracuvallia should really have a »×« preceding the epithet.
one more issue that would be solved if we represented family/genus/species as taxon.
Copied from original issue: Bauble/bauble.classic#211
from expand contact model #25
"the same question applies to email address, why would you need a separate field when you have a multiline description field? just asking, and trying to avoid work that is not necessary."
Answer: if you later want the function to create or hyperlink to create an email, then it would be useful to have email stored in a separate field.
Also, if you want to export a list of contacts and email addresses as a separate column, then it would also help to have email as a separate field.
Also again, email addresses change pretty often. I think it is a mistake to embed them in free text.
plant where id in [1,2,3]
is not currently supported.
it would be practical to complete the functionality of the :tags
screen described in #27
I'm not sure I interpret @tmyersdn correctly, but this is what I would suggest after reading him (Bauble/bauble.classic#224).
please correct me, according to you as a new user, Tags could be more publicized. currently, they are quite hidden in a small menu which is initially empty. once you do start using them, there is no overview of what is tagged by each tag and to have an idea of it, you have to get the tag in the SearchResults.
we could have something similar to the home page, where we could have indeed an overview of all tags, with a numerical summary for each of them. this could go into a page looking like the :history
, as well as into a grid of links like :home
.
the same information row as in the status bar would be associated to each tag, as if the query had been executed.
something which I had suggested elsewhere, interpreting again possibly Tom, or Ross, I can't remember, it was about having at all times one tag that would be called the active tagging tag, something that would allow the user to press a key combination and whatever would be the currently selected object, either a selection in the SearchResult, or the active object in the Object Editor, would be associated to the active tagging tag.
if this does not answer a user's need, please tell me!
OK, so I seem to have little time today and I'm not sure I will get much more time for a while. And you did say you needed feed back @mfrasca 😆
These are all, no doubt, bugs/issues you are aware of with 1.1 still in test mode but I thought I would record anyway. Feel free to close the issue...
- really obvious one... need a way to import data from v1.0 into the new database structure, (will have to wait for all the structure changes to be finalised first I guess) #65
- In the plant editor window changing the planting date does not make the OK button available, also I think planting date should be displayed in the right hand side info pane of the main search window. #64
- Accession
Identification Qualifier
doesn't display correctly in the info pane (i.e. if I enter Archontophoenix alexandrae and put?
as theIdentification Qualifier
and theQualified Rank
as alexandrae it displays as Archontophoenix? alexandrae not Archontophoenix ?alexandrae like I would normally expect to see) #63
I think all the other things I noticed are already recorded in other issues.
in our documentation I suggest the use of copy for sharing pictures.
the copy service is going to stop by July this year.
we need to correct the docs, either suggesting an alternative choice, or not mentioning this at all.
for institutions with an internal network, we can just suggest using a network 'share'.
From @RoDuth on December 23, 2015 9:6
Currently in the Plant Editor there is no way to store the date of planting
.
In the Accession Editor there is Date Accessioned
and Date Received
but this does not necessarily reflect the day a plant was planted in the ground. With some accessions that can happily stay in their pots for a long time (e.g. Lomandra longifolia) we may receive a large quantity (say 300) from a supplier well ahead of the actual planting days. It would be accessioned at this point but no plants added. Then we may plant them in several locations over a period of potentially months. This, being one species from one supplier would be one accession with several plants attached to it for each of the different locations, all planted on different days.
This has concerned me from the start with Bauble, something I have had to work around with notes etc... I'm raising it now as I have been reminded of it again in issue #36.
Copied from original issue: Bauble/bauble.classic#233
search for something that will result in a large SearchResult list.
select at least 60 items
hit Ctrl-T to open the Tags
window.
you will see that most of the space in the window is occupied by the string representation of the selected items.
if your selection is 100 or more items, the tags window will probably not fit in the screen.
(c) contacts could include a flag for receipt of seed list and email address to use for the seed list.
as in Bauble/bauble.classic#224
2 intended locations isn't always enough so I may add notes etc. @mfrasca is there a way that this could be just a list of intended locations and still be able to search it?
Its not uncommon for 5 or more plants from 1 accession and with only 2 intended location options it hampers the way we would like to use it to develop planting lists.
(@mfrasca am I right in assuming I should be putting all new issues here?)
From @mfrasca on June 2, 2015 14:3
From @mfrasca on April 29, 2015 21:0
Felipe and I were reviewing the program in reverse order as I'm now entering issues.
In the accession editor, we first met this 'provenance' field in the 'general' tab, and it was not so clear to Felipe what this thing really was. Next, we entered the 'sources' tab and we met a much more detailed 'Source' specification.
The 'provenance' seems mostly concerned with wild plants, and the next field add information to it, but Felipe's first reaction was "can I add cases to this"?
and two options he would add: in vitro; propagule (not from wild).
Copied from original issue: mfrasca/bauble.classic#83
Copied from original issue: Bauble/bauble.classic#60
I've reviewed most field names and by doing so obviously things broke.
now it's just 9 failing tests which sounds not so scary as when I run the test suite the first time, with less than 10 passing tests.
the failing/erroring tests fall in two categories. one is the ABCD export.
and @RoDuth , do you think you could contribute a real life export against which to test Ghini/Bauble?
side comment, the main difference now is that all epithets are called epithet
, instead of family
as string field of family but as object link of genus, or genus
as string field of genus but as object link of species. calling an epithet epithet
was already so in the JSON import/export and will probably make the step shorter, if we ever decide to tackle mfrasca/bauble.classic#9.
you cannot open the stored queries window in upcoming 1.0.56.
the problem is not reported in unit tests.
when I imported the data available from ars-grin, I did not check for regression.
I have removed several (over 3000) genera, some of which quite common (Allium).
fortunately I did not change the numbering (id) in the family table so it will be easy to recover them.
can we remove the two init_translatable_combo
and init_enum_combo
functions, possibly by doing more in the glade file?
you can double click most objects on a history page, but not all of them.
for contact_details, it makes sense and it is not yet implemented.
from Bauble/bauble.classic#233
While I'm at it, the other issue I have had with the "Reason" for "Current change" field is that many of the options are things that may have made sense to 1 specific garden (UBC?) but not to me. (e.g. "Given to back 40 (FOG)" and "Transferred to Totem Field") this is another field that should be user defined similar to "type of material" #163
from expand contact model #25
this flag would let the user mark the contacts that will receive particular emails - for example, if I want to manage a list of gardens to send an Index Seminum to every year.
Mario, I now think this issue would be better handled better by using "tags". As tags give you the flexibility to identify any number of "email groups". But it still would be useful to have the contact store an email address as a stand alone field.
see :tags
page to show overview of tags #27
when editing a location, you do not get the previous list correctly in the editor.
the editor always shows the last value ever seen, and it does not update it correctly.
when selecting a location, at least for gardens with a large list of locations, it would be better if we offered auto-completion.
(can even see a day where there is a + button, with tool tip "add to the collection", on the right hand side of the list and you highlight a line from the list click + and it deletes the line and opens the plant editor with the 3 fields of data filed in from the list. You just have to fill in any further details and click OK. Wouldn't that be an amazing, quick work flow!)
that is, you are viewing the list of intended locations, each of them has a intended_plant_quantity and an intended_planting_date.
you activate the add to the collection button and you land into the plant editor, with the fields 3 fields filled in from the intended location information.
when moving view.widgets.w.set_active(v) to view.widget_set_active(wn, v) I forgot to use the v parameter.
this broke the stored query editor.
I had removed the bauble.lnk
file because it had hard coded paths in it and I forgot to open an issue related to the automatic generation of the corresponding Ghini file. now a new potential user mentions:
I did the installation of
ghini.desktop
in my linux box and it works well. However I was not able to install it on Windows - giving an an error message linked to the missingghini.lnk
file in the script directory
error: file 'C:\Users\USERNAME\Local\github\Ghini\ghini.desktop\scripts\ghini.lnk' does not exist
I would like to recommend to use the software in the K. University botanical garden, but would be much convenient to have it running on Windows.
from overview of tags #27
could you just call this the "active tag"?
You could use this as a buffer selection that allows you to rapidly tag a lot of items, and then you could name/save or delete the selection once you are happy with it? I guess it could be automatically deleted at the end of each session or if the user resets the selection?
there's a slight confusion, with the representation of an object computed twice depending on whether it goes in the infobox or in the search result. in particular for the agg.
addition for aggregate species, the infobox shows it after the author, while the search result has it before the author.
thanks @tmyersdn for the research:
after the author, based on three examples:
http://link.springer.com/article/10.1023%2FA%3A1008617631367
http://archive.bsbi.org.uk/Wats12p1.pdf
http://onlinelibrary.wiley.com/doi/10.1111/j.1095-8339.1993.tb00343.x/abstract
since recently we have a way to associate series of values to objects that can hold notes.
in particular, this can be used (is meant to be used) to follow/monitor the development of plants in a survey, that is repeated in time.
but inserting data is cumbersome, it would be nice to be able to select the plants, and to have a spreadsheet-like interface where you can edit the values at the different time steps.
From @sehrgut on October 30, 2015 2:21
In all four major classes of plants with which I work (bromeliads, orchids, aroids, and succulents), the distinction between an offset and a cutting is important. For all bromeliads and most orchids, cuttings are impossible. Taking offsets is also distinct from clump division, since the offset when removed is often completely unrooted, or growing on a distal portion of the plant such as an inflorescence (or leaf, in some Pleurothallids).
Tuberous aroids as well produce offset tubers, while sometimes being propagable by leaf cuttings. This distinction is even more important due to the fact that not all offsets sprout the first year, while still being alive; as opposed to seed-grown tubers of the same size, which will almost certainly sprout in the next possible growing season.
Many succulents are highly-propagable by both cuttings and offsets, but the techniques are different, and the ramifications for hardiness and rat of growth are important.
I believe referring to these as unrooted cuttings, root suckers, or divisions is inaccurate, and would be better represented by "offset", and possibly "rooted offset".
Copied from original issue: Bauble/bauble.classic#163
From @mfrasca on December 12, 2015 14:40
the balloon help texts for any standard fields could stress the importance of this and provide guidance for syntax etc. E.g for Genus the balloon help could say:
The full generic name of the plant. Syntax: a single word with first letter capitalised (A-Z) and the rest of the word in lowercase letters (a-z), 1 or 2 hyphens are permitted. No other characters accepted. (refer ITF2 p19 for full details)
for this single specific case, the tooltip now only states:
The genus name
reported by @RoDuth as a comment to #163
Copied from original issue: Bauble/bauble.classic#217
Bauble had an hybrid boolean flag. Ghini has a length-1 Unicode hybrid_marker, which has space for the four ITF2 values ×
, +
, H
and <empty>
.
this hybrid_marker is a member of all taxa, from Family to Species and in perspective it should also be included in the infraspecific parts but I do not want to complicate things when the simple solution would be mfrasca/bauble.classic#9.
as of now, all that I had done to allow Bauble-1.0 to handle hybrid species has to be redone now we can keep the information in its own field and do not need infer it from the epithet.
this is going to be interesting, again. and I will need again to bother @RoDuth, @felipead87 and @tmyersdn or some of your taxonomists.
From @mfrasca on January 14, 2016 19:7
this happens only if you add a connection before doing anything else. if you first select a different connection, then hit 'add', it goes fine.
it only happens once.
Copied from original issue: Bauble/bauble.classic#273
during my travelling, I've met several people asking for an installation but not having any kind of internet connection. so not only did I need to take with me all of the dependencies, but after creating the virtualenv
, all the pip install
and ./setup.py
procedure would not be available because it relies on internet access.
a solution can be based on this Q&A on StackOverflow.
in the Tags
window you can tag/untag objects.
focusing on a single tag
object A,
if your selection includes rows that are tagged as well as rows that are not tagged as A, the check box to the left of A will be unchecked, as if none of the objects was tagged.
GTK offers an 'inconsistent' status:
The set_inconsistent() method sets the "inconsistent" property to the value of setting. If setting is True the togglebutton is displayed in the inconsistent state - an "in between" state. This method is useful if the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a toggle button, and the current values in that range are inconsistent and you want to indicate that by setting the toggle button to an "in between" display. Normally you would turn off the inconsistent state again if the user clicks the toggle button.
Just having a quick look at v 1.1 (nice! 😄 ) and noticed this. Not a big one, just I really like the accession format (e.g.{Y-1}.####
) options you have in v1.0.
(And Wild Status
didn't seem to work either but now I know I'm getting picky for a test release!)
from overview of tags #27
Do you think it would be useful to be able to close and remove tags in bulk. Ie when a tag is no longer useful to delete it from all instances? To save you the work of going through record by record and deleting it.
Sorry if this is already possible and I have not noticed?
when you save the stored queries, the window will take up to a second to close.
have a look at the history and you will realize why that is.
every object is first deleted, then overwritten, even if nothing changed.
If we decide not to plant something we either just delete the accession or remove one of the intended locations (this isn't possible right now, seems you can enter them but once they are there they are locked in and you can change them but not remove them).
(if in 1.1 we organize the intended locations as a list, then you can add or remove elements.)
From @mfrasca on May 10, 2015 20:2
From @mfrasca on April 30, 2015 17:1
growing near (very useful information according to Lucho)
'near', 'on top of', ...
issue came out while examining mfrasca/bauble.classic#85 , the term 'near' was mentioned in the same group of options, but it's different information than mfrasca/bauble.classic#85 .
should allow for multiple such indications.
Copied from original issue: mfrasca/bauble.classic#88
Copied from original issue: Bauble/bauble.classic#17
the search_view_markup_pair
function is part of drawing the row in a SearchView result.
this function is invoked several times just in reaction to mouse events not related to click.
you hover with the mouse over a row, pass from one row to the other, and the function is invoked at least 4 times, first twice for the row being left, then twice for the row being entered.
this was a non-issue as long as the function was a simple quick non-computing thing.
now with the rows wanting to inform the user about object corresponding to the row,, the search_view_markup_pair
has become a fairly complex function, in particular the candidate one for Tag
objects.
also families have authorship, but our initial import does not contain this field.
from overview of tags #27
Is it possible to create and run a query, and apply a tag to all the results of the query?
Once again, sorry if this is already possible!
From @RoDuth on December 23, 2015 9:22
Could potentially be used for resolving names... similar to sighting a source for the name.
LSID examples:
urn:lsid:biodiversity.org.au:apni.taxon:754049
points to Brachychiton bidwillii as defined by APNI (at biodiversity.org.au)
urn:lsid:ipni.org:names:530017-1
points to Aloe vera as defined by IPNI (at ipni.org).
@tmyersdn see issue #221 for the discussion, this came from a suggestion you originally made I think. You may have more to add?
Copied from original issue: Bauble/bauble.classic#234
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.