House by the sea with container extension
House by the sea with container extension

House by the sea in Spain. A container as an expansion and the luxury of the lagoon view

A small fishing house in the front line on a salt lake in the south of Spain was the perfect place to experience a new life, fulfilling the dream of the new owners, to live by the sea. The project envisages a low cost expansion thanks to the use of a container

This old building needed renovation to increase comfort, to increase space and to adapt to the needs of the new tenants. The architects' proposal is part of a Direct Recycling project that reflects on how architectural design can offer a recycling experience

House by the sea with container extension, positioning

The house is located in a fishing village in the lagoon of Mar Menor.in a location with the climatic conditions typical of the marine environment of the Mediterranean Sea and characterised by the presence of lots of sunshine

House by the sea with container extension, positioning

The architects' idea was to put a container at the centre of the project. So, this reused container was perforated on several sides and customised with new spaces such as a shower overlooking the lagoon and a skylight reconfiguring the interior lighting. The new volume was manufactured in a closed shop before being transferred and positioned over the pre-existing building and is covered in an orange insulating layer that makes it unique and original

House by the sea with container extension, positioning

Exposed concrete, under-floor heating, bent sheet metal and polycarbonate are the elements that characterise the expressive materiality of this house, where luxury does not lie in the refined finishes but in the strength of the views

Gallery

An error occurred while processing the template.
The following has evaluated to null or missing:
==> value_list[seq_index]  [in template "20101#20127#2776835" at line 127, column 62]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be 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 key_value = value_list[seq_in...  [in template "20101#20127#2776835" at line 127, column 41]
----
1<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
4<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
5 
6<#-- 
7Mostro il titolo del portlet qui 
8--> 
9<#assign languageId = themeDisplay.getLanguageId()> 
10<#assign propertyKey = "portletSetupTitle_"+languageId> 
11 
12<#assign title = ""> 
13<#assign counter = 1> 
14 
15<#if portletPreferences?has_content> 
16    <#list portletPreferences?keys as key> 
17     
18        <#if key == propertyKey> 
19            <#assign values = portletPreferences[key] /> 
20            <#if values?has_content> 
21                <#list values as value> 
22                    <#assign title = value> 
23                </#list> 
24            </#if> 
25        </#if> 
26     
27     </#list> 
28</#if> 
29 
30<#assign size = 0> 
31 
32<#list entries as curEntry> 
33    <#assign renderer = curEntry.getAssetRenderer() > 
34    <#assign className = renderer.getClassName() > 
35    <#if className == "com.liferay.journal.model.JournalArticle"> 
36        <#assign article = renderer.getArticle() > 
37         
38        <#assign currentArticleAssetEntryId = curEntry.getEntryId() /> 
39        <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
40         
41        <#assign relatedDesigner = "" /> 
42         
43        <#list currentArticleRelatedLinks as related_entry> 
44         
45            <#assign relatedAssetEntryId = related_entry.getEntryId1() /> 
46             
47            <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
48         
49            <#assign relatedGroup = groupLocalService.getGroup(relatedAssetEntry.groupId) /> 
50             
51            <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
52                 
53            <#assign relatedArticle = journalArticleLocalService.fetchLatestArticle(relatedAssetEntryPrimKey)!'' /> 
54                 
55            <#if relatedArticle?has_content> 
56                 
57                <#assign relatedArticleStructureKey = relatedArticle.getDDMStructure().getStructureKey() /> 
58                 
59                <#if relatedArticleStructureKey = "DESIGNER-PROFILE"> 
60                 
61                    <#assign size = size + 1> 
62                     
63                </#if> 
64                 
65            </#if> 
66        </#list> 
67    </#if> 
68</#list> 
69 
70<#if (size > 0) > 
71    <h2 class="portlet-title-text">${title}</h2> 
72</#if> 
73 
74<#-- un ARTICLE può essere legato a un DESIGNER, un COMPANY, un SHOWCASE --> 
75 
76<#list entries as curEntry> 
77 
78    <#assign renderer = curEntry.getAssetRenderer() > 
79    <#assign className = renderer.getClassName() > 
80    <#if className == "com.liferay.journal.model.JournalArticle"> 
81        <#assign article = renderer.getArticle() > 
82         
83        <#assign currentArticleAssetEntryId = curEntry.getEntryId() /> 
84        <#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
85         
86        <#assign relatedDesigner = "" /> 
87         
88        <#list currentArticleRelatedLinks as related_entry> 
89         
90            <#assign relatedAssetEntryId = related_entry.getEntryId1() /> 
91             
92            <#assign relatedAssetEntry = assetEntryLocalService.getEntry(relatedAssetEntryId) /> 
93         
94            <#assign relatedGroup = groupLocalService.getGroup(relatedAssetEntry.groupId) /> 
95             
96            <#assign relatedAssetEntryPrimKey = relatedAssetEntry.getClassPK() /> 
97                 
98            <#assign relatedArticle = journalArticleLocalService.fetchLatestArticle(relatedAssetEntryPrimKey)!'' /> 
99                 
100            <#if relatedArticle?has_content> 
101                 
102                <#assign relatedArticleStructureKey = relatedArticle.getDDMStructure().getStructureKey() /> 
103                 
104                <#if relatedArticleStructureKey = "DESIGNER-PROFILE"> 
105                 
106                    <#assign relatedDesigner = relatedArticle> 
107                     
108                </#if> 
109                 
110            </#if> 
111        </#list> 
112         
113        <#if relatedDesigner?has_content> 
114         
115            <#assign relatedArticleId = relatedDesigner.getArticleId() /> 
116            <#assign articleGroupId = relatedDesigner.getGroupId() > 
117            			 
118			<#assign designer = journalArticleLocalService.getArticle(articleGroupId, relatedArticleId) /> 
119			 
120			<#assign designerFriendlyURL = "" /> 
121			<#assign designerFirendlyURLMap = designer.getFriendlyURLMap() /> 
122			<#assign key_list = designerFirendlyURLMap?keys/> 
123			<#assign value_list = designerFirendlyURLMap?values/> 
124			<#list key_list as key> 
125				<#assign seq_index = key_list?seq_index_of(key) /> 
126				<#if seq_index != -1 > 
127					<#assign key_value = value_list[seq_index]/> 
128					<#if key == themeDisplay.getLocale()> 
129						<#-- assign designerFriendlyURL = stringUtil.replace(key_value, "/-/", "") --> 
130						<#assign designerFriendlyURL = key_value /> 
131					</#if> 
132				</#if> 
133			</#list> 
134						 
135			<#assign hasLinkDesigner = false /> 
136			<#if designerFriendlyURL != "" > 
137				<#assign hasLinkDesigner = articleLanguage.hasLanguageCategory(request, designer, themeDisplay.getScopeGroupId(), themeDisplay.getCompanyId(), 
138					"/arkitube", true) && articleLanguage.isFriendlyURLCorrectLanguage(request, designer, themeDisplay.getLanguageId(), 
139					designerFriendlyURL, themeDisplay.getScopeGroupId(), true, "/arkitube") /> 
140			</#if> 
141			 
142			<#assign cssClassWrappDesigner = "mb-4" /> 
143			<#if (counter < entries?size)> 
144                <#assign cssClassWrappDesigner = "mb-5" /> 
145            </#if> 
146			 
147			<div class="${cssClassWrappDesigner}"> 
148				<#if hasLinkDesigner> 
149					<a href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, relatedAssetEntry, true)}"> 
150				</#if>	 
151						<@liferay_journal["journal-article"] 
152							articleId="${relatedDesigner.getArticleId()}" 
153							ddmTemplateKey="MINIMAL_DESIGNER_INFO" 
154							groupId=articleGroupId /> 
155				<#if hasLinkDesigner>			 
156					</a> 
157				</#if> 
158			</div> 
159         
160        </#if> 
161         
162    </#if> 
163	 
164	<#assign counter += 1> 
165</#list> 
0