<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: main/plugin-odf/plugin.xml
===================================================================
--- main/plugin-odf/plugin.xml	(revision 27027)
+++ main/plugin-odf/plugin.xml	(working copy)
@@ -2112,6 +2112,15 @@
 						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_NAME&lt;/label&gt;
 						&lt;test-operator&gt;wd&lt;/test-operator&gt;
 					&lt;/criteria&gt;
+					&lt;criteria name="campaign" type="string" column="1"&gt;
+						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_CAMPAIGN&lt;/label&gt;
+						&lt;test-operator&gt;eq&lt;/test-operator&gt;
+						&lt;enumeration&gt;
+	                   	 	&lt;custom-enumerator class="org.ametys.odf.enumeration.CampaignEnumerator"&gt;
+	                   	 		&lt;all-option&gt;blank&lt;/all-option&gt;
+	                   	 	&lt;/custom-enumerator&gt;
+	                   	&lt;/enumeration&gt;
+					&lt;/criteria&gt;
 					&lt;criteria name="workflow-step" type="string" column="1" metadata="false"&gt;
 						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_SEARCH_CONTENT_WORKFLOW_STEP&lt;/label&gt;
 						&lt;test-operator&gt;eq&lt;/test-operator&gt;
@@ -2178,6 +2187,7 @@
 					&lt;property id="title" path="metadata/title"/&gt;
 					&lt;property id="orgUnit" path="metadata/orgUnit"/&gt;
 					&lt;property id="code" path="metadata/code"/&gt;
+					&lt;property id="campaign" path="metadata/campaign"/&gt;
 					&lt;property id="contributor" path="metadata/contributor"/&gt;
 					&lt;property id="icon-small" path="@smallIcon"/&gt;
 					&lt;property id="icon-medium" path="@mediumIcon"/&gt;
@@ -2190,7 +2200,7 @@
 				&lt;columns&gt;
 					&lt;column id="title" hideable="false"&gt;
 						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_NAME&lt;/label&gt;
-						&lt;width&gt;350&lt;/width&gt;
+						&lt;width&gt;270&lt;/width&gt;
 						&lt;renderer&gt;org.ametys.cms.tool.search.SearchTool.renderTitle&lt;/renderer&gt;
 					&lt;/column&gt;
 					&lt;column id="language"&gt;
@@ -2202,6 +2212,10 @@
 						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_DIPCODE&lt;/label&gt;
 						&lt;width&gt;100&lt;/width&gt;
 					&lt;/column&gt;
+					&lt;column id="campaign"&gt;
+						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_CAMPAIGN&lt;/label&gt;
+						&lt;width&gt;150&lt;/width&gt;
+					&lt;/column&gt;
 					&lt;column id="orgUnit"&gt;
 						&lt;label i18n="true"&gt;PLUGINS_ODF_UITOOL_PROGRAM_ORGUNIT&lt;/label&gt;
 						&lt;width&gt;150&lt;/width&gt;
@@ -3237,10 +3251,25 @@
 						&lt;/cms:metadata&gt;		
 					&lt;/cms:repeater&gt;				
 					
+					&lt;!-- // HABILITATION --&gt;
+					&lt;cms:metadata name="campaign" type="string"&gt;
+						&lt;label i18n="true"&gt;PLUGINS_ODF_PROGRAM_CAMPAIGN&lt;/label&gt;
+						&lt;description i18n="true"&gt;PLUGINS_ODF_PROGRAM_CAMPAIGN_DESC&lt;/description&gt;	
+						&lt;widget&gt;sorted-enumeration&lt;/widget&gt;	
+						&lt;enumeration&gt;
+							&lt;custom-enumerator class="org.ametys.odf.enumeration.CampaignEnumerator"/&gt;
+						&lt;/enumeration&gt;
+						&lt;validation&gt;
+	            			&lt;mandatory/&gt;
+	            		&lt;/validation&gt;
+					&lt;/cms:metadata&gt;
+					&lt;!-- // Fin HABILITATION --&gt;
+					
 					&lt;cms:dublin-core/&gt;
 					
 					&lt;cms:metadata-set name="main" type="view"&gt;
 	                	&lt;cms:metadata-ref name="title" /&gt;
+						&lt;cms:metadata-ref name="campaign" /&gt;
 	                	&lt;cms:metadata-ref name="code" /&gt;
 	                	&lt;cms:metadata-ref name="cdmCode" /&gt;
 		                &lt;cms:metadata-ref name="presentation"/&gt;
@@ -3312,6 +3341,7 @@
 	                
 	                &lt;cms:metadata-set name="main" type="edition"&gt;
 	                	&lt;cms:metadata-ref name="title" /&gt;
+						&lt;cms:metadata-ref name="campaign" /&gt;
 						&lt;cms:fieldset&gt;
 							&lt;cms:label i18n="true"&gt;PLUGINS_ODF_PROGRAM_PRESENTATION_FIELDSET&lt;/cms:label&gt;	&lt;!-- Presentation --&gt;
 							&lt;cms:metadata-ref name="degree" /&gt;
@@ -3416,6 +3446,7 @@
 	                	&lt;cms:metadata-ref name="title" /&gt;
 	                	&lt;cms:metadata-ref name="keywords" /&gt;
 	                	&lt;cms:metadata-ref name="domain" /&gt;
+	                	&lt;cms:metadata-ref name="campaign" /&gt;
 	                	&lt;cms:metadata-ref name="educationKind" /&gt;
 	                	&lt;cms:metadata-ref name="degree" /&gt;
 	                	&lt;cms:metadata-ref name="dgesipCode"/&gt;
Index: main/plugin-odf/src/org/ametys/odf/program/AbstractProgram.java
===================================================================
--- main/plugin-odf/src/org/ametys/odf/program/AbstractProgram.java	(revision 27027)
+++ main/plugin-odf/src/org/ametys/odf/program/AbstractProgram.java	(working copy)
@@ -232,6 +232,9 @@
     /** Constants for metadata 'keywords' */
     public static final String KEYWORDS = "keywords";
     
+    /** Constants for metadata 'campaign' */
+    public static final String CAMPAIGN = "campaign";
+    
     /**
      * References
      */
@@ -1336,6 +1339,25 @@
         getMetadataHolder().setMetadata(KEYWORDS, keywords);
     }
     
+    /**
+     * Get the campaign of this {@link Program}
+     * @return the campaign or null if not set
+     */
+    public String getCampaign()
+    {
+        return getString(CAMPAIGN);
+    }
+
+    /**
+     * Set the campaign
+     * @param campaign the campaign to set
+     * @throws AmetysRepositoryException if an error occurred
+     */
+    public void setCampaign(String campaign) throws AmetysRepositoryException
+    {
+        getMetadataHolder().setMetadata(CAMPAIGN, campaign);
+    }
+    
     // --------------------------------------------------------------------------------------//
     // CDM-fr
     // --------------------------------------------------------------------------------------//
Index: main/plugin-odf/src/org/ametys/odf/enumeration/CampaignEnumerator.java
===================================================================
--- main/plugin-odf/src/org/ametys/odf/enumeration/CampaignEnumerator.java	(revision 0)
+++ main/plugin-odf/src/org/ametys/odf/enumeration/CampaignEnumerator.java	(revision 0)
@@ -0,0 +1,30 @@
+/*
+ *  Copyright 2014 Anyware Services
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.ametys.odf.enumeration;
+
+import org.ametys.runtime.util.parameter.Enumerator;
+
+/**
+ * {@link Enumerator} for the ODF "sectors activity" enumeration
+ */
+public class CampaignEnumerator extends AbstractODFEnumerator
+{
+    @Override
+    protected String getEnumerationName()
+    {
+        return OdfEnumerationConstant.CAMPAIGN;
+    }
+}
Index: main/plugin-odf/src/org/ametys/odf/enumeration/OdfEnumerationConstant.java
===================================================================
--- main/plugin-odf/src/org/ametys/odf/enumeration/OdfEnumerationConstant.java	(revision 27027)
+++ main/plugin-odf/src/org/ametys/odf/enumeration/OdfEnumerationConstant.java	(working copy)
@@ -59,4 +59,6 @@
     public static final String CODE_FAP = "CODE_FAP";
     /** Code FAP */
     public static final String JOIN_ORGUNIT = "JOIN_ORGUNIT";
+    /** Campagne */
+    public static final String CAMPAIGN = "CAMPAIGN";
 }
Index: main/plugin-odf/i18n/messages_en.xml
===================================================================
--- main/plugin-odf/i18n/messages_en.xml	(revision 27027)
+++ main/plugin-odf/i18n/messages_en.xml	(working copy)
@@ -653,6 +653,8 @@
 	&lt;message key="PLUGINS_ODF_PROGRAM_ATTACHED_FILE_TEXT"&gt;Text to display&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_PROGRAM_ATTACHED_FILE_TEXT_DESC"&gt;Text to display in place of the filename for download link.&amp;lt;br/&amp;gt;If empty the filename will be used.&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_PROGRAM_PDF_DOWNLOAD_ALT"&gt;Download to PDF&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_PROGRAM_CAMPAIGN"&gt;Campaign&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_PROGRAM_CAMPAIGN_DESC"&gt;Program habilitation campaign&lt;/message&gt;
 	
     &lt;!-- Type Content : subprogram --&gt;
 	&lt;message key="PLUGINS_ODF_SUBPROGRAM_CONTENT_LABEL"&gt;Subprogram&lt;/message&gt;
@@ -844,6 +846,7 @@
 		 + --&gt;	
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_NAME"&gt;Name&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_DIPCODE"&gt;Code&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_CAMPAIGN"&gt;Campaign&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_LANG"&gt;Language&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_TITLE"&gt;Title&lt;/message&gt;	
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_ORGUNIT"&gt;Organizational unit(s)&lt;/message&gt;
Index: main/plugin-odf/i18n/messages_fr.xml
===================================================================
--- main/plugin-odf/i18n/messages_fr.xml	(revision 27027)
+++ main/plugin-odf/i18n/messages_fr.xml	(working copy)
@@ -655,6 +655,8 @@
 	&lt;message key="PLUGINS_ODF_PROGRAM_ATTACHED_FILE_TEXT"&gt;Texte Ã&nbsp; afficher&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_PROGRAM_ATTACHED_FILE_TEXT_DESC"&gt;Texte Ã&nbsp; afficher Ã&nbsp; la place du nom du fichier sur le lien de tÃ©lÃ©chargement.&amp;lt;br/&amp;gt;Si vide le nom du fichier sera utlisÃ©.&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_PROGRAM_PDF_DOWNLOAD_ALT"&gt;TÃ©lÃ©charger la fiche formation au format PDF&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_PROGRAM_CAMPAIGN"&gt;Campagne&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_PROGRAM_CAMPAIGN_DESC"&gt;Campagne d'habilitation de la formation&lt;/message&gt;
 	
     &lt;!-- Type Content : subprogram --&gt;
 	&lt;message key="PLUGINS_ODF_SUBPROGRAM_CONTENT_LABEL"&gt;Parcours&lt;/message&gt;
@@ -846,6 +848,7 @@
 		 + --&gt;	
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_NAME"&gt;LibellÃ©&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_DIPCODE"&gt;Code diplÃ´me&lt;/message&gt;
+	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_CAMPAIGN"&gt;Campagne&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_ORGUNIT"&gt;Composante(s)&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_LANG"&gt;Langue&lt;/message&gt;
 	&lt;message key="PLUGINS_ODF_UITOOL_PROGRAM_TITLE"&gt;Listes des Formations&lt;/message&gt;	
Index: main/plugin-odf/doc/odf-enumeration.xml
===================================================================
--- main/plugin-odf/doc/odf-enumeration.xml	(revision 27027)
+++ main/plugin-odf/doc/odf-enumeration.xml	(working copy)
@@ -34,4 +34,5 @@
     &lt;item key="CODE_CITE97" location="context://WEB-INF/param/odf/code_cite97.xml"/&gt;
     &lt;item key="CODE_FAP" location="context://WEB-INF/param/odf/code_fap.xml"/&gt;
     &lt;item key="JOIN_ORGUNIT" location="context://WEB-INF/param/odf/join_orgunit.xml"/&gt;
+    &lt;item key="CAMPAIGN" location="context://WEB-INF/param/odf/campaign.xml"/&gt;
 &lt;/items&gt;
\ No newline at end of file
Index: main/plugin-odf/doc/i18n/application_en.xml
===================================================================
--- main/plugin-odf/doc/i18n/application_en.xml	(revision 27027)
+++ main/plugin-odf/doc/i18n/application_en.xml	(working copy)
@@ -1786,4 +1786,8 @@
 	&lt;message key="APPLICATION_ODF_COHABILITATION_0311383K"&gt;UniversitÃ© Toulouse 2 Le Mirail&lt;/message&gt;
 	&lt;message key="APPLICATION_ODF_COHABILITATION_0311384L"&gt;UniversitÃ© Toulouse 3 Paul Sabatier&lt;/message&gt;
 	&lt;message key="APPLICATION_ODF_COHABILITATION_9830001J"&gt;Vice-Rectorat de la Nouvelle-CalÃ©donie&lt;/message&gt;
+	
+	&lt;!-- CAMPAIGN --&gt;
+	&lt;message key="APPLICATION_ODF_HABILITATION_2009_2013"&gt;Campagne 2009-2013&lt;/message&gt;
+	&lt;message key="APPLICATION_ODF_HABILITATION_2013_2017"&gt;Campagne 2013-2017&lt;/message&gt;
 &lt;/catalogue&gt;
\ No newline at end of file
Index: main/plugin-odf/doc/i18n/application.xml
===================================================================
--- main/plugin-odf/doc/i18n/application.xml	(revision 27027)
+++ main/plugin-odf/doc/i18n/application.xml	(working copy)
@@ -1786,4 +1786,8 @@
 	&lt;message key="APPLICATION_ODF_COHABILITATION_0311383K"&gt;UniversitÃ© Toulouse 2 Le Mirail&lt;/message&gt;
 	&lt;message key="APPLICATION_ODF_COHABILITATION_0311384L"&gt;UniversitÃ© Toulouse 3 Paul Sabatier&lt;/message&gt;
 	&lt;message key="APPLICATION_ODF_COHABILITATION_9830001J"&gt;Vice-Rectorat de la Nouvelle-CalÃ©donie&lt;/message&gt;
+	
+	&lt;!-- CAMPAIGN --&gt;
+	&lt;message key="APPLICATION_ODF_HABILITATION_2009_2013"&gt;Campagne 2009-2013&lt;/message&gt;
+	&lt;message key="APPLICATION_ODF_HABILITATION_2013_2017"&gt;Campagne 2013-2017&lt;/message&gt;
 &lt;/catalogue&gt;
\ No newline at end of file
Index: main/plugin-odf/doc/constants/campaign.xml
===================================================================
--- main/plugin-odf/doc/constants/campaign.xml	(revision 0)
+++ main/plugin-odf/doc/constants/campaign.xml	(revision 0)
@@ -0,0 +1,21 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+   Copyright 2012 Anyware Services
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   --&gt;
+&lt;items i18n-catalog="application"&gt; 
+	&lt;item code="2009-2013" i18n-key="APPLICATION_ODF_HABILITATION_2009_2013"/&gt;
+	&lt;item code="2013-2017" i18n-key="APPLICATION_ODF_HABILITATION_2013_2017"/&gt;
+&lt;/items&gt;
+
</pre></body></html>