RÉALISATIONS

 

Projet 1 : Balisage d'un chemin de randonnée

Un chemin de promenade autour de Targé de 13 km est mis en place avec des codes couleurs, un affichage des distances. Un panneau descriptif est installé au départ de ce parcours pédestre et cyclo avec une carte grand format.  La carte interactive et le fichier gpx du circuit sont accessibles en ligne.

Réalisé avec les marcheurs de l'association d'animation de Targé, le balisage de ce chemin permet de (re)découvrir la commune et son patrimoine local. C'est une nouvelle possibilité de pratiquer des activités physiques de marche, de course à pied, de VTT).

L'occasion de découvrir un chemin qui longe l'Ozon pour rejoindre les bords de Vienne, en passant par le Chillou. Une nouvelle offre parmi les randonnées châtelleraudaises.

Carte interactive du circuit

Découvrez le parcours proposé grâce à la cartographie ci-dessous.

Il vous est possible d'en  récupérer le tracé GPX :

► télécharger le tracé GPX de Targé et alentours

Lecture d'un fichier GPX

► télécharger le tutoriel d'import d'un fichier GPX (PDF-1,2MO-nouvel onglet)

 

.


Projet 2 : Aire de jeux pour enfants

Deux modules dédiés aux enfants ont été implantés :

  • une maisonnette de jeu
  • un jeu sur ressort Pomme

Aussitôt installé, aussitôt adopté par nos jeunes amis !

​​​​​​​


Projet 3 : Parcours sportif

Un ensemble de 10 modules d'exercices sportifs en bois est implanté autour du terrain de foot de Targé.

Ces installations permettent à tous d'entretenir sa forme physique et son cardio à proximité de chez soi. Les différents agrès, échelle double, barres parallèles et poutre mobile, sont en libre accès.

Clubs et targéens ont déjà adopté ce parcours !

​​​​​​​

 

.

 

Podium

 

À l'issue du vote des Targéens, voici le palmarès des projets en fonction du nombre de votes obtenus.

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> portletPreferences['queryValues0']  [in template "10108#1166444#6869110" at line 33, column 20]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign allTags = portletPreferences[...  [in template "10108#1166444#6869110" at line 33, column 1]
----
1<#function getField fields name> 
2	<#if fields?is_sequence> 
3		<#list fields as field> 
4			<#if field.getName() == name> 
5				<#return field.getValue().getString(local)> 
6			</#if> 
7		</#list> 
8	</#if> 
9</#function> 
10 
11<#function getImageURL rootElement name> 
12    <#assign 
13		xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='${name}']") 
14		Visuel = xPathSelector.selectSingleNode(rootElement) 
15
16    <#return Visuel.getStringValue()> 
17</#function> 
18 
19<#if serviceLocator??> 
20	<#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
21</#if> 
22 
23<#-- Filter by tag (reload the agregator) --> 
24<#assign selectedTag = '' /> 
25<#if currentURL?contains("p_r_p_categoryId") > 
26	<#assign selectedTag = request.getParameter("p_r_p_categoryId") /> 
27	<!-- Param selected : ${selectedTag} --> 
28<#else> 
29	<!-- No Param selected --> 
30	<#assign selectedTag = '' /> 
31</#if> 
32 
33<#assign allTags = portletPreferences['queryValues0'] /> 
34<#if allTags?has_content > 
35    <article class="category-navigator"> 
36		<@displayTags allTags /> 
37    </article> 
38</#if> 
39 
40<article class="cagc-general-aggregator cagc-filtered-aggregator"> 
41    <#if entries?has_content> 
42     
43    <ul class="asset-card-list"> 
44	 
45		<#list entries as curEntry> 
46			<#assign  
47				renderer = curEntry.getAssetRenderer() 
48				className = renderer.getClassName() 
49			/> 
50 
51			<#if className == "com.liferay.journal.model.JournalArticle"> 
52 
53				<#assign 
54					journalArticle = renderer.getArticle()  
55					document = saxReaderUtil.read(journalArticle.getContent())  
56					rootElement = document.getRootElement() 
57					fields = renderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues() 
58					 
59					<#-- Get the tag (etiquette) of the current entry --> 
60					etiquette = '' 
61					listTags = assetTagLocalService.getAssetEntryAssetTags(curEntry.getEntryId()) 
62				/> 
63				 
64				<#if listTags?size != 0 > 
65					<#assign etiquette = listTags[1].getName() /> <#-- TODO : change 1 to 0 --> 
66				</#if> 
67				 
68				<#if etiquette == selectedTag || selectedTag == ''> 
69				<li class="component-card text-break"> 
70					<#-- ------- initialisation des champs structure ---------------- --> 
71					<#assign  
72						NumeroDuProjet    = "${getField(fields, 'NumeroDuProjet')}" 
73						NombreDeVotes     = "${getField(fields, 'NombreDeVotes')}" 
74						Thematique        = "${getField(fields, 'Thematique')}" 
75						NomDuProjet       = "${getField(fields, 'NomDuProjet')}" 	 
76						Resume   		  = "${getField(fields, 'Resume')}"		 
77						Description       = "${getField(fields, 'Description')}" 
78						Chiffrage    	  = "${getField(fields, 'Chiffrage')}" 
79						IllustrationProjet= "${getImageURL(rootElement, 'IllustrationProjet')}" 
80						Localisation  	  = "${getImageURL(rootElement, 'Localisation')}" 
81
82						 
83					<#if IllustrationProjet?trim!= ""> 
84						<#assign 
85						pageObject1 = jsonFactoryUtil.createJSONObject(IllustrationProjet) 
86						localGroupId = pageObject1.getLong('groupId') 
87						localUuid = pageObject1.getString('uuid') 
88						IllustrationProjet = "/c/document_library/get_file?uuid=${localUuid}&groupId=${localGroupId}"  
89
90					</#if> 
91					<#if Localisation?trim!= ""> 
92						<#assign 
93						pageObject2 = jsonFactoryUtil.createJSONObject(Localisation) 
94						localGroupId = pageObject2.getLong('groupId') 
95						localUuid = pageObject2.getString('uuid') 
96						Localisation = "/c/document_library/get_file?uuid=${localUuid}&groupId=${localGroupId}" 
97
98					</#if> 
99					<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
100 
101					<#--  ------- gabarit d affichage ----------------	--> 
102					 
103					<div class="card card-full"> 
104						<#if IllustrationProjet?trim != ""> 
105							<img alt="" class="image-size" src="${IllustrationProjet}" /> 
106						</#if> 
107						<#if NumeroDuProjet?trim != ""> 
108							<p class="numeroDuProjet">${NumeroDuProjet}</p> 
109						</#if> 
110						<div class="card-body cardbody"> 
111							<div class="info"> 
112								<#if NombreDeVotes?trim != ""> 
113									<p class="nombreDeVotes">Nb points : ${NombreDeVotes}</p> 
114								<#else> 
115									<p class="nombreDeVotes">Nb points : 0</p> 
116								</#if> 
117								<#if NomDuProjet?trim != ""> 
118									<h2 class="headnews" > 
119										${NomDuProjet} 
120									</h2> 
121								</#if> 
122								<div class="ctn-resume"> 
123								<#if Resume?trim != ""> 
124									<p class="resume">${Resume}</p> 
125								</#if> 
126								</div> 
127								<#if etiquette != "" > 
128									<div class="status"> 
129										<p class="etiquette">${etiquette}</p> 
130									</div> 
131								</#if> 
132								<div class="test-loc"> 
133									<div class="ctn-thematique"> 
134									<#if Thematique?trim != ""> 
135										<p class="thematique">${Thematique}</p> 
136									</#if> 
137									</div> 
138									<div class="ctn-read-more"> 
139										<a class="read-more" href="${viewURL}">[+]</a> 
140									</div> 
141								</div> 
142							</div> 
143						</div> 
144						<a class="overlay" tabindex="-1" href="${viewURL}<#if themeDisplay?has_content>?backUrl=${themeDisplay.getURLCurrent()}</#if>"></a> 
145					</div> 
146				</li> 
147				</#if> 
148			</#if> 
149		</#list>		 
150	</ul> 
151    </#if> 
152</article> 
153 
154<#macro displayTags tags > 
155	<#if tags?has_content> 
156        <section class="cagc-block mt-4 mb-4"> 
157            <#assign allTagURL = renderResponse.createRenderURL().toString()?keep_before("?") /> 
158			<#assign selected = "" /> 
159			<#if selectedTag == ""> 
160			    <#assign selected = "selected" /> 
161            </#if> 
162 
163            <a class="link-button ${selected}" href="${allTagURL}"> 
164				<@liferay_ui.message key="all"></@liferay_ui.message> 
165            </a> 
166			<#list tags as tagName> 
167				<#assign tagURL = "?" + "p_r_p_categoryId=" + tagName /> 
168				<#assign selected = "" /> 
169				<#if selectedTag == tagName> 
170					<#assign selected = "selected" /> 
171				</#if> 
172				<a class="link-button ${selected}" href="${tagURL}">${tagName}</a> 
173			</#list> 
174		</section> 
175	</#if> 
176</#macro> 
177 
178<style> 
179    #p_p_id${renderResponse.getNamespace()} .taglib-categorization-filter {display:none;} 
180	 
181	article.category-navigator .cagc-block{ 
182		text-align: center; 
183		margin-bottom: 30px !important; 
184
185	article.category-navigator .link-button{ 
186		color: #555; 
187        padding: 3px 4px; 
188        border: 1px solid #555; 
189        margin: 5px 5px; 
190        text-transform: uppercase; 
191        display: inline-block; 
192		border-radius: 5px; 
193
194	 
195	article.category-navigator .selected { 
196		background-color: #ffe604; 
197		color: black; 
198
199	 
200	article.category-navigator .link-button:hover { 
201		color: white; 
202		background-color: #c10076; 
203		text-decoration: none; 
204
205	article.cagc-general-aggregator ul.asset-card-list { 
206		list-style: none; 
207		width: 100%; 
208		margin-bottom: 100px; 
209		padding: 0; 
210		display: grid; 
211		grid-template-columns: repeat(5, 1fr); 
212		grid-column-gap: 15px; 
213		grid-row-gap: 20px; 
214		grid-auto-rows: 1fr; 
215
216	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full { 
217		position: relative; 
218		margin: 0; 
219		overflow: hidden; 
220		width: 100%; 
221		height: 100%; 
222		border-radius: 0; 
223		border: none; 
224		display: grid; 
225		grid-template-columns: 1fr; 
226        grid-template-rows: 1fr 2fr; 
227        background-color: #fdfdfd; 
228        border: 1px solid #f1f1f1; 
229
230	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full img { 
231		width: 100%; 
232		height: 100%; 
233
234	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body { 
235		padding: 0.5rem; 
236        padding-top: 0; 
237
238	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full p.numeroDuProjet { 
239		position: absolute; 
240		left: 10px; 
241		top: 10px; 
242		background-color: white; 
243		width: 30px; 
244		height: 30px; 
245		font-size: 18px; 
246		font-weight: bold; 
247		line-height: 30px; 
248		border: 1px solid silver; 
249		border-radius: 50%; 
250		text-align: center; 
251
252	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full p.nombreDeVotes { 
253		text-align: right; 
254
255	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body .info { 
256		display: flex; 
257		flex-direction: column; 
258		justify-content: space-between; 
259		align-items: stretch; 
260
261	 
262	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body .description{ 
263        text-align: justify; 
264        padding-bottom: 10px; 
265
266	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body .card-text { 
267		height: calc(12 * 1.2rem); 
268		line-height: 1.3rem; 
269		overflow: hidden; 
270
271	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body div.ctn-resume { 
272		margin-bottom: 15px; 
273		height: 55px; 
274
275	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body div.test-loc { 
276		display: flex; 
277		justify-content: space-between; 
278		align-items: center; 
279
280	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body p.resume{ 
281        line-height: 12px; 
282
283	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body div.status { 
284		border: 1px solid black; 
285		text-align: center; 
286		background-color: #ffe604; 
287		position: relative;  
288
289	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body p.etiquette { 
290		color: black; 
291
292	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full .card-body a.read-more { 
293		font-size: calc(28 * calc(1rem / 25)); 
294
295	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full a.overlay { 
296	    position: absolute; 
297		bottom: 0; 
298		height: 0; 
299		width: 100%; 
300
301	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full:focus-within a.overlay, 
302	article.cagc-general-aggregator ul.asset-card-list li.component-card .card-full:hover a.overlay { 
303		background-color: #c10076; 
304		opacity: 0.75; 
305		z-index: 10; 
306		height: 100%; 
307
308	 
309</style>