Problem/Motivation
There are several ways we could construct the model here that map to the basic story. For example are individual ingredients terms or content entities? Should we use simple entity references or entity reference views for ingredients? Is the "vendor" type a unique content type or is it a more generic type like "organization" with a taxonomy term of "vendor".
We should resolve some of these questions before we go too far down the road of building the profile.
Proposed resolution
The out of the box initiative team has defined the following content types and taxonomy vocabularies as the basis for the sample content:
Content types
Page
- Title (string)
- Body (long text)
Article
- Author (reference to user)
- Title (string)
- Date (datetime)
- Body (long text)
- Image (image)
Recipe
Try to follow schema.org Recipe schema as tightly as possible. More information and the schema can be found here: https://schema.org/Recipe
- Title (string)
- Image (image) (first could be used as lead image but see below)
- Summary (long text)
- Author (reference to user)
- Recipe category (enum, Desserts, Soups, Salads, Entrees, Snacks)
- Preparation time (integer, minutes)
- Cooking time (integer, minutes)
- Difficulty (enum, easy, medium, hard)
- Ingredients (array of strings)
- Recipe instruction (long text)
- Number of servings (integer)
- Tags (reference to tags taxonomy)
- Recipe reviews and testimonials (reference to comments)
Taxonomy vocabularies
- Tags (Vegetarian, Vegan, Italian, French, Catalan, Japanese, Healthy, Fish, Meat, Low carb)
Remaining tasks
Discuss the model in Drupal UX meeting, report back here.- Approve the proposed content model
User interface changes
None
API changes
None
Data model changes
None
| Comment | File | Size | Author |
|---|---|---|---|
| #37 | 7 - Umami contact wirefame v4.png | 176.16 KB | kjay |
| #37 | 6 - Umami page wirefame v4.png | 433.88 KB | kjay |
| #25 | 5 - Umami recipe wirefame v3.png | 401.15 KB | kjay |
| #37 | 4 - Umami recipes wirefame v4.png | 451.33 KB | kjay |
| #37 | 3 - Umami feature wirefame v4.png | 496.14 KB | kjay |
Comments
Comment #2
larowlanhttps://docs.google.com/document/d/1aSJ2fFqCvxFpS4UqrfzIcdYiO6-EB9Ml3PvM...
Comment #3
larowlanWe need to finalise this before next week's sprint.
Stories in the backlog align to the current model in the doc above.
Will distill it here and set to needs review for someone to RTBC
Comment #4
tkoleary commentedHere's the latest version of the model.
Pages (in main menu)
Content types
Taxonomies
Comment #5
tkoleary commentedIn the slack @kimb0 suggested that we could use Entity Reference Quantity for the ingredient with quantity, and presumably propose it as a new core field (experimental) since it's so small:
I agree.
Comment #6
webchickHm, is that an 80% use case though? We typically don't add new features like that to core unless they're something that would be of use to the majority of Drupal sites. Seems pretty specialized.
Comment #7
tkoleary commented@webchick
I think if we could make it 'field with value' or 'compound field' it would be broad enough to be valuable to many sites. For example.
Cart
[entity reference: product node],[value],[units]
eg.
Items in cart
Paving stones, 25
Fertilizer, 2, large bags
Pesticide, 3, ltr
Or
Generic alternatives with equivalent doses
[trem reference: drug],[value],[units]
eg.
Amoxycillin, 10mg
Arithromycin, 15mg
Or
Required credits (or hours) for transfer
[category: term reference], [value],[units]
eg.
History, 20 credits
Science, 15 credits
Math, 30 credits
Comment #8
larowlanI think on the call we agreed to 'key ingredients' being a tag for now and having just normal text fields for the steps/ingredients. Just a simpler way to built it with what's in core (as a first step).
So that'd be
Pages (in main menu)
Content types
Taxonomies
Moving to needs review so we can progress this.
Comment #9
tkoleary commented@larowlan
Thanks.
Also moved the question of using Entity Reference Quantity to a separate issue #2822595: Add Entity Reference Quantity as an optional field in Drupal CMS
Comment #10
lauriiiThe new proposed content model for the publisher site has been worked on. Here's the latest version of that.
Content types
Try to follow schema.org Recipe schema as tightly as possible. More information and the schema can be found here: https://schema.org/Recipe
Taxonomies
Comment #11
lauriiiComment #12
yoroy commentedSuper nice to see this gives us 3 content types of increasing complexity. A simple Page, a medium Article and a complex Recipe.
Comment #13
yoroy commentedMaybe we need to move this one to the ideas queue to get it signed of as an approved plan?
Comment #14
lauriiiComment #15
yoroy commentedComment #16
ckrinaChanging Preparation time and Total time from ISO_8601 duration to text because durations aren't supported by Drupal core.
Comment #17
dawehnerCan we change it to an integer and specify it in minutes? This is just my inner physicist trying to make sense here :)
Comment #18
ckrinaOf course!
Comment #19
yoroy commentedUpdated the formatting in the issue summary.
Comment #20
lauriiiFew comments about the currently proposed content model:
Comment #21
lauriiiUpdated the data model according to #20 and the call we had today with @e0ipso, @ckrina, @dawehner, @Gábor Hojtsy, @yoroy and @kjay.
Comment #22
lauriiiRemoved the leftover ingredients taxonomy vocabulary from the proposal
Comment #23
e0ipso@lauriii I think we resolved on removing the Summary field and using the summary property on the Recipe instruction field. Is that correct?
Comment #24
lauriii@e0ipso: I think we should have a separated summary field since the summary isn't composed of the instructions, so there is no point in using the summary property of the instruction field.
Comment #25
kjay commentedAs discussed in our recent UX calls, here are the latest wireframes illustrating the layouts for the food magazine sample content scenario that closely follow the content model described here.
There's plenty to discuss around these wireframes and the content model but here's a few notes to get things started...
General
Home
Features
Feature/Article page
Recipes listing
Recipe page
Comment #26
lauriiiWe discussed the taxonomies and categories on the call today and decided to remove cuisine taxonomy vocabulary and move the category from a taxonomy vocabulary to an enum because that allows us to create easily some pre-filtered views blocks.
Comment #27
eaton commentedLooking really, really cool so far.
Will these cards be a particular styling of the Teaser view mode, or a distinct 'card' view mode? No need to gild the lily, but it'd be nice if this demonstration of Drupal's content modeling capabilities could also show off customizable View Modes, which are a big part of D8's flexibility…
It looks like Umami is going to require with a custom theme that's not very reusable outside of this demo — a lot of the layout/visual styling is impossible without custom CSS and tailored image assets, perhaps even some custom templating. I don't think that's a bad thing, but it is something to keep in mind. Its purpose as a demonstration of Drupal's capabilities, rather than an out-of-box reusable theme for general purpose sites, helps keep things sane.
Comment #28
e0ipsoWe want to use media images for the API-First distribution. That means that if we were to share content model configuration and migration for CSV to content, we'll need to have the same setup in this initiaitve.
I understand that Media is entering as in beta mode in 8.4.x. Would you be open to using media as in core for the images in the content model?
Comment #29
dawehnerAt least conceptually I think this is fine, given that the installation profile is experimental, but well, actually media is stable in core.
Keep in mind that we need at least three issues to make image media support useful:
Comment #30
larowlanFYI The original approval for the 'add an experimental install profile' was predicated on the assumption that is would showcase experimental modules too.
Comment #31
lauriiiI think media was initially discussed being one of the features that we would like to demonstrate. However, at some point, it was dropped from the MVP requirements most likely because we were not sure what the status of the module will be like at the time we are implementing this. I personally don't have any objections against depending on media since it is a very important feature in Drupal core, and it fits well with the goals of the demo site.
@e0ipso could you update the content model proposal to include the proposed changes?
Comment #32
dawehnerOne thing I learned today, which wasn't clear for me, is that media will probably not be stable in 8.4, but rather just in 8.5. I think we should consider this in our decision.
Comment #33
yoroy commentedRight now, none of Media is available. Lets not build in dependencies on things that aren't there yet but use what we have now. Once Media source plugins are available, we should switch to those. Lets not get ahead of ourselves, we can always iterate on the plan itself as more good stuff becomes available and implement it *when it's there*.
Comment #34
dawehnerI agree with the media bit. We can always switch over and then even say: Hey we have now even media support :)
What kind of difficulties should exist? I guess three: Easy / Middle / Hard would be a good limited enum list?
Comment #35
lauriii@dawehner I updated the issue summary. I only changed middle to medium.
Comment #36
kjay commentedAdjusting issue summary to change total time to cooking time
Comment #37
kjay commentedWe had the opportunity to work together during the sprint at Frond End United and produced the attached v4 wireframes.
Front:
- Front page article/recipe 'Sub-heading' removed. This sub-heading/summary does not appear in the content model and is removed for now at least. We agreed this is one that can come back if necessary but removal simplifies things
- The magazine promotion block in the center of the page can link to the Magazine page
- 'Dinners to impress', 'Learn to Cook', 'Baked up' and 'Quick and easy' are updates to the content being presented in this block. These will link to a View (yet to be wireframed) that will list recipes via their category, difficulty and cooking time
- The pre-footer region has been simplified to reduce the number of links that would otherwise become content dead ends. The contact form 'Get in touch' is linked, plus we are proposing that we have a page providing information about the demo theme itself
Features:
- Updated to remove category/tag from each card as these were not included in the content model
Feature article:
- Updated to remove category/tag from the article and the aside articles list
- How we demonstrate related content remains a work in progress. For this version the related author information block has been removed in order to reduce the amount of content required
Recipes:
- The plan for this recipe landing page is to create Views blocks that will list a selection of recipes for one or more categories or filters set for each View block
- With the recipes being grouped by category, it will be repetitive to see the category name above each recipe title and so it has been swapped for difficulty. This will further demonstrate using alternative view modes
- The idea of having a list of tags has been bought back into the wireframes and placed in the pre-footer and these can link through to list the tagged recipes - plans for this View will likely be discussed in our next call
Recipe:
- Swapped recipe author for displaying category and multiple tags
- Split Preparation time and cooking time
- Updated the recipe cards at the bottom of the page to use difficulty in place of category/tag
- Included the tags list in the pre-footer as per the recipes landing page
Magazine page (Page content type):
- The magazine page will use the page content type with an aside containing a block that promotes the contact form. The idea is to simply have this content type work in a consistent way for any further pages that may be added to the theme. The contents of the aside can be reviewed as the requirements come together
- The contents illustrated for the page can all be provided via the ckeditor, keeping the design for the page simple but with plenty of opportunity to have some great looking sample content
Contact page:
- Work in progress with discussion on the need for including contact forms ongoing. For now the default website feedback form has been illustrated with an additional telephone field added for demonstrating form editing
Comment #38
kjay commentedHa, trying to work out the ordering of the files displayed and failing!
Comment #39
dawehnerI really like this iteration of the wireframes. It feels less cluttered.
Oh I have one question which I observed while looking at the wireframes. They seem to indicate that the method to fullfill the recipe is actually a list of steps rather than a full text, see
. Maybe it makes sense to change the data model here to be a little bit more flexible? See https://www.drupal.org/files/issues/5%20-%20Umami%20recipe%20wirefame%20...
Comment #40
kjay commented@dawehner It's a good point and another item for us to discuss on Thursday's call. I had in mind to look into any current CSS styling techniques for ordered lists, anything that might degrade gracefully perhaps. But maybe there is something more flexible that makes the demo better as well.
Comment #41
e0ipsoWe had some questions regarding the first wireframe:
Comment #42
e0ipsoRegarding wireframe 3:
Comment #43
e0ipsoRegarding wireframe 4:
Comment #44
e0ipsoOn wireframe 5:
Comment #45
e0ipsoThanks for this awesome work! Some people at the Contenta initiative are already working with these.
Comment #46
ckrinaWireframe 1 - Home #41
- Search: how does the search icon behave? Does it link to the search page?
I bet for having an expanded/expandable search field that send you to a list of results.
- How do we select the items in the lead section?
Yes, latest promoted articles and recipes.
- To answer:
Underneath the magazine block: will those blocks be dynamic? Will they always be the same category/difficulty/category/time?
Wireframe 3 - Article #42
- Main body will be a long text field with full html with the possibility to have images inside. We haven’t faced the idea of having responsive images inside WYSIWYG yet. Just to point out that the main image is a separate field.
Wireframe 4 - Recipes #43
- How do the view more buttons work? Do they append the recipes in place, or does the link take you to a dedicated page?
I think they’d go to a list page with same filters applied. Is that right @kjay @lauriii?
Wireframe 5 - Recipe #44
- There is a More Recipes section. How are these recipes selected?
We have 2 options: other recipes with same categories or referenced recipes to showcase how Drupal is able to relate content apart from other entities like users or taxonomy. We discussed this and agreed on using referenced content, but there wasn’t an strong position for this so it could be changed if you would like to.
Comment #47
e0ipsoThanks for the clarifications @ckrina. Please let me know when those open ended questions are resolved.
We may need wireframes for that page if we want to link to another page.
Comment #48
lauriiiI first thought they would be menu links but because of it must contain 2 fields it cannot be a standard menu link. I think these should be just static links.
We planned with @kjay that these would use the Views ajax load more functionality since we won't have enough recipes to make it worth it to link to a separated page.
We discussed more this and we would like to use the category to find more recipes so then we don't have to introduce another entity reference in the recipes just for the more recipes block.
Since this issue has been quite stable for a while, I will mark this as RTBC for now.
Comment #49
yoroy commentedThis looks great, complete and sufficient. If necessary, any changes would be minor tweaks so lets take it from here. Thanks for working this through. Onwards!
Comment #51
andrewmacpherson commented