cancel
Showing results for 
Search instead for 
Did you mean: 

Ajout métadata et gestion des droits

thomasberment
Champ in-the-making
Champ in-the-making
Salut tout le monde, je suis nouveau sur le forum et je travaille sur Alfresco depuis peu de temps.

J'avais une question importante, qui est la suivante : peut-on ajouter une méta-donnée "statut" pour un document ? Et peut-on donner des droits d'acces sur cette méta-donnée?

Je m'explique, mon souhait est de réaliser dans un espace une liste de document qui ont tous des "statut" différents, par exemple "en lecture", "relu", "validé", etc. Une sorte de cycle de vie d'un document… Et en parallèle à ça gérer les droits d'accès à ces fichiers, par exemple bob à le droit de lire les documents "validé" mais pas les éditer, toto peut éditer un document "en lecture".

J'espère avoir était clair sur mon objectif, sinon hésitez pas à me poser des questions …

J'ai vu qu'il était possible d'ajouter des méta-données mais je sais pas trop comment faire et par où commencer. En plus la gestion des droits sur les méta-données j'ai pas trouvé grand chose voir même rien sur le sujet. Pouvez-vous m'aider ?

Merci à tous …
12 REPLIES 12

thomasberment
Champ in-the-making
Champ in-the-making
Voila, ça marche …

1/ custom-model-context.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
    <!– Registration of new models –>   
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco\extension\customModel.xml</value>
            </list>
        </property>
    </bean> 
</beans>


2/ customModel.xml
<?xml version="1.0" encoding="UTF-8"?>

<!– Custom Model –>

<!– Note: This model is pre-configured to load at startup of the Repository.  So, all custom –>
<!–       types and aspects added here will automatically be registered –>

<model name="custom:custommodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>  
   <description>Epingler le statut d'un document</description>
   <author>Thomas Berment</author>
   <version>1.0</version>

   <imports>
        <!– Import Alfresco Dictionary Definitions –>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <!– Import Alfresco Content Domain Model Definitions –>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <!– Introduction of new namespaces defined by this model –>
   <!– NOTE: The following namespace custom.model should be changed to reflect your own namespace –>
   <namespaces>
      <namespace uri="custom.model" prefix="custom"/>
   </namespaces>
  
  
   <constraints>
   <constraint name="custom:typestatut" type="LIST">
        <parameter name="allowedValues">
          <list>
            <value>Travail</value>
            <value>Relu</value>
            <value>Validé</value>
            <value>Archivé</value>
          </list>
        </parameter>
    </constraint>
    <constraint name="custom:typeclassification" type="LIST">
        <parameter name="allowedValues">
          <list>
            <value>BRDD</value>
            <value>CdC</value>
            <value>Chk-Reports</value>
            <value>Convention</value>
            <value>DCTG</value>
            <value>ETUTECH</value>
            <value>FDL</value>
            <value>ISTS</value>
            <value>Memo</value>
            <value>PA</value>
            <value>PGD</value>
            <value>Plan</value>
            <value>Pres</value>
            <value>SFD</value>
            <value>SFG</value>
            <value>STD</value>
            <value>StrRE7</value>
            <value>TabSuivEntretien</value>
            <value>TbbDoc</value>
            <value>TbbLiv</value>
            <value>TbbSuivRevues</value>
            <value>TU</value>
          </list>
        </parameter>
    </constraint>
    </constraints>
       
     <aspects>
        <aspect name="custom:Metadatastatut">
          <title>Statut du document</title>
          <properties>
            <property name="custom:statut">
              <title>Statut</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
              <default>Travail</default>
              <constraints>
                <constraint ref="custom:typestatut"/>
              </constraints>
            </property>
          </properties>
        </aspect>
       
        <aspect name="custom:Classification">
          <title>Classification du document</title>
          <properties>
            <property name="custom:type">
            <title>Classification</title>
            <type>d:text</type>
            <mandatory>true</mandatory>
            <constraints>
                  <constraint ref="custom:typeclassification"/>
            </constraints>
            </property>
          </properties>
        </aspect>
      </aspects>  
     
</model>


3/ web-client-config-custom.xml
<!– Lists the custom aspect in business rules Action wizard –>
   <config evaluator="string-compare" condition="Action Wizards">
     <aspects>
      <aspect name="custom:Metadatastatut"/>
      <aspect name="custom:Classification"/>
     </aspects>
   </config>
  
   <!– Displays the properties in view details page –>
    <config evaluator="aspect-name" condition="custom:Metadatastatut">
    <property-sheet>
      <show-property name="custom:statut" display-label-id="statut"/>
    </property-sheet>
    </config>
   
    <config evaluator="aspect-name" condition="custom:Classification">
    <property-sheet>
      <show-property name="custom:type" display-label-id="type"/>
    </property-sheet>
    </config>
   
   
    <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <!–<content-types>
            <type name="custom:custommodel" />
         </content-types>–>
         <custom-properties>
            <meta-data aspect="custom:Metadatastatut" property="custom:statut" />
            <meta-data aspect="custom:Classification" property="custom:type" />
         </custom-properties>
      </advanced-search>
   </config>

Je vous laisse mon code pour celui que ça intéresse. J'ai même rajouté les métadonnées dans la recherche avancée.


Par contre j'aurai une autre question, est-il possible de proposer à un utilisateur X de remplir le champ (pour mon cas "Type de document") au moment de l'ajout d'un document ? Si oui, comment je peux faire ?

Cordialement.

rguinot
Confirmed Champ
Confirmed Champ
le truc "pas très joli" c'est vous qui l'avez demandé. en effet, vous utilisez un séparateur avant le statut :

<separator name="sepCust1" display-label="Statut du document" component-generator="HeaderSeparatorGenerator" />

en l'enlevant votre statut devrait apparaître à la suite des autres métadonnées

thomasberment
Champ in-the-making
Champ in-the-making
le truc "pas très joli" c'est vous qui l'avez demandé. en effet, vous utilisez un séparateur avant le statut :

<separator name="sepCust1" display-label="Statut du document" component-generator="HeaderSeparatorGenerator" />

en l'enlevant votre statut devrait apparaître à la suite des autres métadonnées

Oui je m'en suis séparé dans mon dernier code, le statut apparait normalement, comme les autres métadonnées.
Par ailleurs, je répond à ma propre question juste au dessus, j'ai créer une règle qui demande directement le statut à l'ajout d'un document.

Merci en tout cas de votre aide à tous.
Si jamais j'ai des questions, ou même si j'en n'ai pas, je reviendrai vous voir…