Свои колонки в datagrid реестра Alvex

 Добрый день!

У нас установлена alfresco-4.2.e, сверху на неё - расширение alvex community 2014.01.
Нами был определён свой аспект, содержащий необходимые нам метаданные, которые должны привязываться к контенту (набор наших свойств). Этот аспект можно применять для каждого элемента (строки) datagrid'а реестра alvex. Проблема заключается в следующем: мы хотим, чтобы в таблице datagrid реестра появились новые стоблцы с нашими атрибутами из кастомного аспекта. Кроме того, хотелось бы видеть эти новые столбцы при экспорте в excel. Возможно, кто-то уже сталкивался с подобной проблемой?

Вот наши конфиги:

1) Контекст модели  tomcat/shared/classes/alfresco/extension/fileRegister-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>
    <bean id="fileRegister.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco/extension/fileRegister.xml</value>
            </list>
        </property>
        <property name="labels">
            <list>
                <value>alfresco/extension/fileRegister</value>
            </list>
        </property>
    </bean>
</beans>

2) Модель с аспектами tomcat/shared/classes/alfresco/extension/fileRegister.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Definition of Knowledge Base Model -->
<model name="tgt:fileRegistry" xmlns="http://www.alfresco.org/model/dictionary/1.0">
   <!-- Optional meta-data about the model -->
   <description>TGT File Registry model</description>
   <author>Stanislav </author>
   <version>1.0</version>
   <!-- Imports are required to allow references to definitions in other models -->
   <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 -->
   <namespaces>
      <namespace uri="http://www.alfresco.com/model/knowledgebase/1.0" prefix="tgt"/>
   </namespaces>
    <aspects>
      <!-- Definition of new Content Aspect: Knowledge Base Document -->
      <aspect name="tgt:fileRegistryClassifier">
         <title>TGT file registry classifier</title>
         <properties>
            <property name="tgt:grandocNumber">
               <type>d:text</type>
            </property>
            <property name="tgt:classCode">
               <type>d:text</type>
            </property>
            <property name="tgt:location">
               <type>d:text</type>
            </property>
         </properties>
      </aspect>
   </aspects>
</model>

3) Конфигурация share(показываем аспект и добавляем свои поля в datagrid) tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
....
         <aspects>
         <!-- Aspects that a user can see -->
         <visible>
            <aspect name="cm:generalclassifiable" />
            <aspect name="cm:complianceable" />
            <aspect name="cm:dublincore" />
            <aspect name="cm:effectivity" />
            <aspect name="cm:summarizable" />
            <aspect name="cm:versionable" />
            <aspect name="cm:templatable" />
            <aspect name="cm:emailed" />
            <aspect name="emailserver:aliasable" />
            <aspect name="cm:taggable" />
            <aspect name="app:inlineeditable" />
            <aspect name="gd:googleEditable" />
            <aspect name="cm:geographic" />
            <aspect name="exif:exif" />
            <aspect name="audio:audio" />
            <aspect name="cm:indexControl" />
            <aspect name="dp:restrictable" />
            <aspect name="tgt:fileRegistryClassifier" />
         </visible>
 
         <!-- Aspects that a user can add. Same as "visible" if left empty -->
         <addable>
         </addable>
 
         <!-- Aspects that a user can remove. Same as "visible" if left empty -->
         <removeable>
         </removeable>
      </aspects>
......
      <config evaluator="model-type" condition="alvexdt:sent">
      <forms>
         <form id="datagrid">
            <field-visibility>
               <show id="alvexdt:id" />
               <show id="alvexdt:registerDate" />
               <show id="alvexdt:correspondent" />
               <show id="alvexdt:sentType"/>
               <show id="alvexdt:assignee" />
               <show id="alvexdt:status" />
               <show id="alvexdt:dueDate" />
               <show id="tgt:classCode" />
               <show id="tgt:location" />
               <show id="tgt:grandocNumber" />
            </field-visibility>
         </form>
         <form>
            <field-visibility>
               <show id="alvexdt:id" />
               <show id="alvexdt:registerDate" />
               <show id="alvexdt:correspondent" />
               <show id="alvexdt:relatedReceived" />
               <show id="alvexdt:summary" />
               <show id="alvexdt:addresser" />
               <show id="alvexdt:signingDate" />
               <show id="alvexdt:signatory"/>
               <show id="alvexdt:contactName" />
               <show id="alvexdt:deliveryType" />
               <show id="alvexdt:sentType" />
               <show id="alvexdt:files" />
            </field-visibility>
       <create-form template="/alvex-form.ftl" />
            <appearance>
               <set id="id" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
               <set id="company" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
               <set id="summary" appearance="" label="" />
               <set id="execution" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
               <set id="files" appearance="" label=""/>
               <set id="related" appearance="" label=""/>
               <field set="id" id="alvexdt:id">
                  <control template="/alvex-auto-numberer.ftl"/>
               </field>
               <field set="id" id="alvexdt:registerDate">
                  <control template="/alvex-autodate.ftl"/>
               </field>
               <field set="id" id="alvexdt:sentType">
                  <control template="/alvex-masterData-select.ftl"/>
               </field>
               <field set="company" id="alvexdt:correspondent">
                  <control template="/alvex-masterData-select.ftl"/>
               </field>
               <field set="company" id="alvexdt:contactName">
                  <control template="/alvex-masterData-select.ftl"/>
               </field>
               <field set="company" id="alvexdt:deliveryType">
                  <control template="/alvex-masterData-select.ftl"/>
               </field>
               <field set="summary" id="alvexdt:summary">
                  <control template="/alvex-mltext.ftl">
                     <control-param name="style">width: 98%</control-param>
                  </control>
               </field>
               <field set="execution" id="alvexdt:addresser">
                  <control template="/orgchart-picker.ftl" />
               </field>
               <field set="execution" id="alvexdt:signingDate"/>
               <field set="execution" id="alvexdt:signatory">
                  <control template="/orgchart-picker.ftl" />
               </field>
               <field set="files" id="alvexdt:files">
                  <control template="/alvex-uploader.ftl">
                     <control-param name="uploadDirectory">uploads</control-param>
                     <control-param name="createUploadDirectory">true</control-param>
                     <control-param name="viewType">mini</control-param>
<control-param name="withoutRegistries">true</control-param>
                  </control>
               </field>
               <field set="related" id="alvexdt:relatedReceived"/>
            </appearance>
         </form>
      </forms>
   </config>

Примечательно то, что если я распаковываю файлы из tomcat/webapps/share/WEB-INF/lib/alvex-documents-registers-ce-share-1.20.jar, правлю там конфиги share, потом снова запаковываю и перезапускаю alfresco, я могу скрывать некоторые колонки, но показать свои всё равно не получается. Хотелось бы найти "recommended way" для добавления столбцов в datagrid реестров alvex. В ходе работы пользовался мануалом http://www.ossportal.ru/technologies/alfresco/blogs/894#share

Заранее благодарен всем за ответы.

Комментарии

Aviriel аватар
 А зачем Вы создавали аспект? Recommended way описан ровно в том мануале, на который Вы дали ссылку. И там описано, что нужно создавать свой тип, наследуясь от стандартного, в который Вам хочется добавить поля.

Вы можете попробовать открыть нужный реестр через репозиторий ( в верхнем меню у админа), выбрать "Управление правилами" и создать правило, которое при создании нового документа в реестре будет добавлять ему ваш аспект. Но:
1. так надо проделать с каждым реестром заново
2. я не уверена, что это будет работать, никогда не проверяла.
 Благодарю за ответ! Попробую настроить правила применения аспекта для новых записей. А что с колонками? Как можно их вывести? 
И подскажите, пожалуйста, по поводу экспеорта в excel? Там колонки сами появятся, если их прописать в конфиге в секции "datagrid".
 Сделал кастомный тип реестров и всё само заработало! Спасибо!