I took a quick pass at this, with two pull requests:
- In farmOS (to add seed asset type): https://github.com/farmOS/farmOS/pull/438
- In @Symbioquine’s module to remove the seed asset type and depend on the new upstream module: https://github.com/symbioquine/farmOS_seed_asset/pull/1
@Symbioquine Would love to get your eyes on both of these if/when you have a chance! I gave you commit credit since it was almost a direct copy from your module.
I still saw an “if” somewhere in the discussion thread so I just wanted to underline the seed asset topic in case there was still uncertainty. In the greater scheme of things for row crop farming, I’m a small operator.
Regarding the organic certification… I’m in the midst right now of completing my organic certifications. One of the key audit trails is called “Trace back”. You need to show the auditor the trail from harvest back to the seed purchase records. This is pretty easy to do in FarmOS when you can click on the harvest log and bring up everything that went into that harvest. Having FarmOS set up even in the 1.x generation has really helped pull together records for the certifier.
Took a look at the Seed attributes on Drupal. List seems to cover things well. Nice to see the seed search aspect listed. A seed search activity logging capability tied to the seed asset could be very helpful. Something that would be well suited to capturing action within the phone app.
Just to be clear @graffte the pull request I created JUST adds a Seed asset type, with two fields: Crop/variety, and Season (both identical to the fields on the Plant asset type, which is what @Symbioquine used as a reference). The Seed asset will have all the default properties/relationships that assets have (described here). But the PR I created does NOT address the broader list of features that @mbomford listed in the original drupal.org feature request issue.
But, for the sake of comparison, here’s that list along with some notes/thoughts:
Crop - Use existing Crop/variety reference field.
Variety - Use existing Crop/variety reference field.
Botanical name - No dedicated field currently.
Family - Use existing Crop Family reference field.
Functional group - Not sure what this was for.
Supplier - Seeding log has a field for this. Might make sense to add one to Seed asset as well. Could also be recorded in “Seller” field of Purchase logs that reference the Seed asset.
Lot number - Seeding log has a field for this. Might make sense to add one to Seed asset as well. Could also be recorded in “Notes” field of Purchase logs that reference the Seed asset.
Date received - Record in a Purchase log probably.
Quantity received - Record in a Purchase log probably.
Date of last use - This could be recorded in Seeding log that references the Seed asset to adjust it’s inventory perhaps.
Quantity remaining - If you use inventory management on the seed management this is calculated for you.
Certified organic? - Use flags provided by the Organic module.
Sources checked for organic - No dedicated field currently. Recommend using Notes.
Seed treatment - Maybe a dedicated field would be useful for this, or just use the Notes field, if seed was purchased pre-treated and that is necessary to document. Or, if you are applying the treatment yourself I would use an Input log to record that personally.
Notes - Core field on all assets
Some of these things could be handled in different ways, depending on the use-case. For example, Supplier and Lot Number… I could see a case where you have a single “Corn Seed” asset, that tracks ALL your seed inventory, which actually comes from multiple suppliers with multiple lot numbers. In this case, it wouldn’t make sense for those fields to be on the Seed asset itself, but instead recorded with each Purchase log that increments that Seed asset’s inventory.
If that makes sense!
Lots of ways to slice these things… which is both an advantage (flexible data model allowing you to develop your own conventions), and a challenge (building higher-level features requires limiting the use-cases, which is why I also like to see that happen in UI modules, not at the data model layer).
Could you elaborate more on how this would work in your mind? Are you referring to this comment? https://www.drupal.org/project/farm/issues/3022158#comment-12904416
Just want to make sure I understand what you’re excited about. Because none of these additional aspects are part of the current pull request, and it might be worth opening a few follow-up feature requests for specific next steps!
Looks great! No concerns.
Regarding the Seed Search activity, within organic systems a seed search is conducted before you are allowed to use a conventional seed in place of an organic certified seed. The following are the instruction from my certifier outlining what needs to be done:
For all conventional seed you will use, remember to have the following records:
1) Seed search showing which suppliers (at least 3 viable organic suppliers) were contact and didn’t have the form, quality or quantity you needed in organic form
2) Untreated statement from the conventional seed supplier
3) NonGMO statement from the conventional seed supplier, if applicable.
All of this needs to be recorded and then verified by the auditor when the operator’s organic records are inspected. I would opt to keep this information in the Seed Asset record as an attached file(s) outlining the phone calls and e-mails of the people contacted. My thought was that step 1 might be activity style log entries that get attached to the seed asset record using the phone app to allow recording the search activity as you go. Versus saving your search activities in some other way and then attaching them as a summary file to the Seed Asset record after you are done with the search. Probably not a critical feature, but when I saw the seed search mentioned in the list, this popped into my head.
I think the supplier and lot number information should be fields in the Seed Asset. Seed lot numbers may need to be tracked. Inventory would act on specific lot numbers. The default would be FIFO but could be over ridden within the seeding action when seed is subtracted (moved to a planting). The Lot information would probably come in through the purchase record but could also be a transfer of a harvest grain lot back to seed inventory (with or without some intermediate value added operation like cleaning or treating).
I would opt to leave seed treatments as an Input Log even when the supplier is applying it to the seed. In organic systems, the treatment material needs to be documented no matter who adds it to the seed. The treatment(s) gets recorded in the operators list of approved materials maintained by the certifying agency. A given supplier may use the same treatment on multiple seed varieties. Keeping it as an Input Log allows selecting that log and immediately getting the list of Seed Assets it was applied to using the Asset field in the Input Log and visa versa from the seed asset record.
The Purchase Logs are also a nice add. Currently I save Invoices as file attachments on the Seed Asset (make shift use of Plantings). It would be much better to have this in a Purchase Log and then have a Purchase Log list for the given Seed Asset come up like the other log types for the given asset when it’s clicked.
I’m also not sure what Function Group is for.
Ah right! That’s what you were referring to. Makes sense! (I was confused and thought you meant a UI for “searching” for your seed assets - which is already included.)
So yea, in terms of documenting seed search requirements for organic certification, there isn’t a dedicated place for that in farmOS, but you could certainly document it in the Notes field of your Seed asset when you create it, as well as use the Files or Photos fields to upload related documents. In my experience as long as you are documenting it somewhere that’s all the certifier wants to see (of course every certifier is different).
My thought was that step 1 might be activity style log entries that get attached to the seed asset record using the phone app to allow recording the search activity as you go.
You could certainly document it this way too! Perhaps as Activity logs that reference the Seed asset? Those logs could have notes, timestamps, files, photos, etc as well, independent (but linked to) the Seed asset itself.
If “Activity” is too general, then perhaps a new log type would be warranted - but I always hesitate to add more until it’s clear that it’s absolutely necessary. Another option is to add your own custom “Log category” (eg: “Seed search documentation”), which you use on your Activity logs, so that you can quickly filter down to them in the future.
I like this idea too. We could have it on BOTH the Seeding logs and the Seed asset, IMO. Why not? That gives a lot of flexibility - so people can use it in different ways depending on their needs. Although avoiding confusion can be tricky when we do things like that… so maybe word-smithing the field descriptions to make that clear (and in user guides etc) will be important.
I would opt to leave seed treatments as an Input Log even when the supplier is applying it to the seed. In organic systems, the treatment material needs to be documented no matter who adds it to the seed.
I like that approach too, personally.
The Purchase Logs are also a nice add. Currently I save Invoices as file attachments on the Seed Asset (make shift use of Plantings)
Ah yea - do you have the Sale/Purchase log module enabled? I can enable it for you if you’d like.
Didn’t know about purchase log option. Please activate. Thanks
@graffte Consider it done!
Hi Mike, I really appreciate it.
Update: this is merged! farmOS 2.x has a Seed asset type now.
Thanks again to @Symbioquine for the initial work on this, and for reviewing my pull request.
Great to hear. Thanks for getting it implemented.
I presume this means that feature will be landing in alpha3 version of v2 (i.e. not present in alpha2 version) -correct @mstenta ?
That’s correct. It’s part of the summary of what’s changed since alpha2: farmOS 2.x Releases (and What to Expect) - #5 by mstenta
Yeah, i only just saw that post about Alpha3 release, after i posted the above (duh!) -thanks, Morgan!