So lets assume you are building a site, where you need to place an node in a category(term) pretty common right? So lets also assume you are a beginner, in Drupal 6 your line of thinking is:

  1. Figure out that Taxonomy is about categories
  2. Create a Vocabulary (probally after finding tags isnt what you want)
  3. Assign the vocabulary to a content type
  4. Done!

So lets do the same thing for Drupal 7? New version, should be easier or atleast the same right?

  1. Figure out that Taxonomy is about categories
  2. Create a vocabulary
  3. Understand the field concept
  4. Go to content types, manage fields
  5. Create a new field (understand that you need term reference)
  6. Select the vocabulary(nice)
  7. Configure basic page settings
  8. Done!

Since it seems kinda late to fix this in Drupal 7,so I made this for Drupal 8.

CommentFileSizeAuthor
#17 add_vocab_to.png20.55 KBxjm

Comments

marcingy’s picture

Category: bug » task

Not really a bug more a task.

joachim’s picture

+1.

The UI for taxonomy took a big step back with D7, albeit for considerably more power.

Bojhan’s picture

Category: task » bug

This is definitly a bug, we made something less usable? How can that not be a bug.

catch’s picture

Title: Regression: Adding a term to a content type is too hard » Adding a term to a content type is too hard
Category: bug » task

Sorry but this isn't a bug in the sense of a straight regression from Drupal 6.

If we'd tried to make taxonomy vocabulary forms simpler but ended up making them worse it would be, but instead what we did was replace that part of the form entirely with a generic UI - i.e. field UI.

That means there's the following actionable responses to this issue:

1. Remove field UI from core.
2. Add back a custom taxonomy UI in addition to the field UI (IMO this would be a regression from 7 since it would be less learnable/consistent with the rest of core - if you want to do that I as taxonomy module maintainer would consider it won't fix).
3. Add form builder to core so the workflow can be inverted (you add term reference fields to a node form, possibly creating vocabularies in-line).
4. #28480: Create generalized relationship module - although that makes this even more generic, although in combination with #3 it might end up being a net improvement from a usability point of view (it'd definitely unify a lot of code).

joachim’s picture

...really?

That looks rather over the top.

Surely all you'd need is:

- set of ticky boxes for node types in the taxonomy vocab edit form
- on submit, automatically create/update a termref field called field_taxonomy_VOCABNAME, and add instances of that to those node types

There's no need to rip anything out at all.

Even to someone coming to Drupal fresh on D7, you have to admin that applying a vocabulary to a node type is a really long-winded process.

catch’s picture

That's option #2. What happens when that same user visits the field UI and sees a completely different UI for doing exactly the same thing?

catch’s picture

Even to someone coming to Drupal fresh on D7, you have to admin that applying a vocabulary to a node type is a really long-winded process.

No different to creating a node type that's going to be used in a node reference field though is it?

Bojhan’s picture

Issue tags: +Usability
franz’s picture

subscribing

joachim’s picture

> No different to creating a node type that's going to be used in a node reference field though is it?

True. But that wasn't a workflow in core in D6 -- and for that matter, nor is it on D7!

What's happened here could be termed a usability regression. (And perhaps we should think of a way to fix it that also works for improving the workflow for other reference fields in contrib.)

franz’s picture

If #28480: Create generalized relationship module gets in core in D8, then it will be important to have a UI solution that covers all relationships

joachim’s picture

Given it really doesn't look like this will get fixed in D7, I made this: http://drupal.org/project/field_tools.

webchick’s picture

Status: Active » Closed (duplicate)

#1347448: [META] Taxonomy admin usability Improvements looks to be a more holistic look at the entire taxonomy administrative experience, so I'm marking this one as a duplicate.

joachim’s picture

Title: Adding a term to a content type is too hard » Apply vocabularies to entities on the vocabulary settings page
Status: Closed (duplicate) » Active

Ok in that case let's make this a sub-issue of that one and sharpen it :)

webchick’s picture

Priority: Major » Normal

That's cool, but then this is no longer major. The other task is.

xjm’s picture

Title: Apply vocabularies to entities on the vocabulary settings page » Create taxonomy fields from the taxonomy administration page
StatusFileSize
new20.55 KB

I'm actually thinking that the thing to do would be to put a dropbutton operation for creating a field at admin/structure/taxonomy. Brainstorming some possible labels for the operation:

  • Add 'vocabname' to...
  • Add as a field
  • Create a taxonomy field
  • Add to content type
  • etc.

Following #631038: Add Manage Fields and Manage Display links to the vocab dropbutton and #1340500: Merge "list terms" page into "edit vocabulary" page, this would look something like:
add_vocab_to.png

Then:

  1. The user selects the dropbutton.
  2. The dropbutton pre-selects the correct field type and bundle for a taxonomy ER field, and then takes the user into a modified field UI workflow.
  3. The user selects the bundle to add the field to. We could restrict this to nodes as the 80% case and let ER via the field UI be responsible for fielding other entity types, or we could use #states to first select a fieldable entity type, and then the bundle.
  4. The user enters the field label, widget, and other field settings (only the # values probably) on the same form, and submits. (This is a change I'd like to make in the regular Field UI as well, but that's another issue.)
  5. The user is then taken to the normal field instance configuration page. The correct ER reference type/method and bundle are pre-selected, or even hidden.
  6. The user submits the field instance form and is redirected to the manage fields page for the appropriate content type (or other bundle if we opt to add to more than content.)
xjm’s picture

Bojhan’s picture

I am not really sure about this practice of "Add tags to..", I think this is going to spawm up a lot of usability issues. You place fields from the entity, whether thats comments, nodes, terms etc. you will go to that UI to add fields to it. You do not really crossover, the main reason for this is because knowing where to go instead of being all over the place is crucial to a good IA, if you want something on that "thing/entity" you know that you do not need to be in other UI's to do this.

The act of adding something to an entity, is ideally one you do during setup a few times and after that don't revisit 95% of the time. The rest of the time you are configuring the fields and their display, not adding new ones. So I am not sure about this cross over, it introduces multiple entry points and with that different workflows, for a usecase that hopefully isn't all to big after the initial setup and introduces a rather ambiguous pattern that will be hard to transfer to other entities.

I think the solution to this is multi tier:

1) We need to educate about fields earlier in the process, e.g. through the use age of tour.
2) The cross over can happen, but it shouldn't happen in the contextual link, where it can happen is on the vocabulary edit page - where it used to be anyway. This could mean a multi-step workflow, but that requires just the same amount of work as explained above.
3) Manage fields / Manage display now happens on a higher level, therefor people will be better able to connect the dots that this is a fieldable thing.
4) Perhaps the vocabulary page, should have something in its description that explains you can add it to "entities" on the edit page.

klonos’s picture

Wouldn't #394482: Users should be able to enable a vocabularly from the content type configuration page render this redundant? ...well, unless we want to enable people to do the same thing from two different places I guess. Is that desirable?

If we decide to go with one, I favor #394482: Users should be able to enable a vocabularly from the content type configuration page over this one here.

xjm’s picture

The rest of the time you are configuring the fields and their display, not adding new ones.

I disagree, I add new fields about as often as I configure them and their display.

Part of the goal here is to resolve the problem of "I made this thing, now where does it go?" like we also have for things like menu blocks.

Manage fields / Manage display now happens on a higher level, therefor people will be better able to connect the dots that this is a fieldable thing.

Hmm, not really... The conceptual problem--and the reason I struggled with a good name for this operation--is that this is both fieldable and also supplies a field. "Manage fields" for the taxonomy vocabulary is managing fields that appear on the form when creating taxonomy terms in that vocabulary. This option is an option to apply a field to a different entity/bundle, like a content type.

If we decide to go with one, I favor #394482: Users should be able to enable a vocabularly from the content type configuration page over this one here.

The problem with #394482: Users should be able to enable a vocabularly from the content type configuration page is that it special-cases a specific kind of field on the content creation form, circumventing the field UI, and it also special-cases a particular entity type (nodes) when taxonomy fields can be added to any fieldable entity. Maybe we decide that that is worthwhile, but I'm personally a bit uncomfortable with it, especially since it wasn't there in D7.

This solution, on the other hand, is generic, so I'd prefer to do something like this to "close the loop" and to make entity reference fields less baffling by skipping past unneeded complexity that most of the time the user does not care about. Sort of analogous to the Views Wizard vs. the full Views UI. But the goal is to help the user get from the process of creating a vocabulary to the step of adding it to something else.

Edit: If it's too confusing to have multiple entry points, or too confusing to handle both fielding for this and making this a field for something else from the same point, that's fine. But in the past we've discussed multiple entry points as one solution to the underlying problem.

joachim’s picture

I would maybe want to tweak some small details, like maybe "Apply 'Tags' to..." rather than "Add Tags to...", but generally I think this is a very good proposal.

xjm’s picture

Ooh, "Apply" is a good word, because it's clearly distinct from any of the CRUD terminology.

yoroy’s picture

Version: 8.0.x-dev » 8.2.x-dev
Issue summary: View changes
joachim’s picture

I've made a proof of concept of this as a sandbox project: https://www.drupal.org/sandbox/joachim/2728879

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

This still a valid task?

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.