# Niveau minimum de département de catégorie/sous-catégorie pour publier un sujet

**URL:** https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150
**Category:** Support
**Created:** [Décembre 12, 2018, 10:10 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150 "2018-12-12T22:10:11Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![rbrlortie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rbrlortie/32/166740_2.png) [@rbrlortie](https://meta.discourse.org/u/rbrlortie)
#### Post date: [Août 6, 2019, 6:14 UTC](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150/3 "2019-08-06T18:14:34Z")

</div>

Nous avons utilisé l’API pour modifier le contrôleur du compositeur de messages et y ajouter une validation d’erreur. Je n’ai pas la dernière version du code sous la main, mais cela ressemblait à ceci :

```
var computed = require("ember-addons/ember-computed-decorators").default;
api.modifyClass('controller:composer',
    {
      save(opts) {
        var categoryNb = $('.category-input .category-chooser .selected-name > span').length;
        if((categoryNb !== 0 && categoryNb < 2) ) {
            this.set("lastValidatedAt", Date.now());
            return false;
        }
        return this._super(opts);
      },
      @computed("model.categoryId", "lastValidatedAt")
      categoryValidation(categoryId, lastValidatedAt) {
          var InputValidation = require("discourse/models/input-validation").default;
          var categoryNb = $('.category-input .category-chooser .selected-name > span').length;
          if( (categoryNb !== 0 && categoryNb < 2) ) {
              return InputValidation.create({
                  failed: true,
                  reason: 'Vous devez sélectionner une sous-catégorie',
                  lastShownAt: lastValidatedAt
                });
          } else {
              return this._super(categoryId, lastValidatedAt);
          }
      }
  }
);

```

En résumé, cela vérifie simplement le nombre d’éléments dans le champ de sélection de catégorie et renvoie une erreur s’il n’y en a qu’un ou zéro. Une sous-catégorie aura toujours deux éléments ‘’. Dans cette version du fragment que j’avais sous la main, cela était fait via jQuery. Je pense qu’il y avait un autre appel API pour obtenir la profondeur d’une catégorie.

---

_[View the full topic](https://meta.discourse.org/t/minimum-category-sub-category-dept-level-to-post-a-topic/104150)._
