diff --git a/README.md b/README.md
index e15a4e1..efb7919 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@ Archetype
=========

+
+
## Installation
Install the selected release through the Umbraco package installer or via NuGet.
diff --git a/app/Umbraco/Umbraco.Archetype/Extensions/ArchetypeHelper.cs b/app/Umbraco/Umbraco.Archetype/Extensions/ArchetypeHelper.cs
index 1db4ea6..0d03f92 100644
--- a/app/Umbraco/Umbraco.Archetype/Extensions/ArchetypeHelper.cs
+++ b/app/Umbraco/Umbraco.Archetype/Extensions/ArchetypeHelper.cs
@@ -4,6 +4,7 @@ using Archetype.Models;
using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.Models;
+using Umbraco.Core.Models.PublishedContent;
namespace Archetype.Extensions
{
@@ -46,7 +47,7 @@ namespace Archetype.Extensions
}
}
- internal Models.ArchetypeModel DeserializeJsonToArchetype(string sourceJson, int dataTypeId)
+ internal Models.ArchetypeModel DeserializeJsonToArchetype(string sourceJson, int dataTypeId, PublishedContentType hostContentType = null)
{
try
{
@@ -56,7 +57,7 @@ namespace Archetype.Extensions
{
// Get list of configured properties and their types and map them to the deserialized archetype model
var preValue = GetArchetypePreValueFromDataTypeId(dataTypeId);
- RetrieveAdditionalProperties(ref archetype, preValue);
+ RetrieveAdditionalProperties(ref archetype, preValue, hostContentType);
}
catch (Exception ex)
{
@@ -110,7 +111,7 @@ namespace Archetype.Extensions
///
/// The Archetype to add the additional metadata to
/// The configuration of the Archetype
- private void RetrieveAdditionalProperties(ref Models.ArchetypeModel archetype, ArchetypePreValue preValue)
+ private void RetrieveAdditionalProperties(ref Models.ArchetypeModel archetype, ArchetypePreValue preValue, PublishedContentType hostContentType = null)
{
foreach (var fieldset in preValue.Fieldsets)
{
@@ -125,6 +126,7 @@ namespace Archetype.Extensions
propertyInst.DataTypeGuid = property.DataTypeGuid.ToString();
propertyInst.DataTypeId = GetDataTypeByGuid(property.DataTypeGuid).Id;
propertyInst.PropertyEditorAlias = property.PropertyEditorAlias;
+ propertyInst.HostContentType = hostContentType;
}
}
}
diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypeModel.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypeModel.cs
index 1587050..b057aee 100644
--- a/app/Umbraco/Umbraco.Archetype/Models/ArchetypeModel.cs
+++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypeModel.cs
@@ -31,7 +31,7 @@ namespace Archetype.Models
internal string SerializeForPersistence()
{
var json = JObject.Parse(JsonConvert.SerializeObject(this));
- var propertiesToRemove = new String[] { "propertyEditorAlias", "dataTypeId", "dataTypeGuid" };
+ var propertiesToRemove = new String[] { "propertyEditorAlias", "dataTypeId", "dataTypeGuid", "hostContentType" };
json.Descendants().OfType()
.Where(p => propertiesToRemove.Contains(p.Name))
diff --git a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePropertyModel.cs b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePropertyModel.cs
index cd3b1ff..66773df 100644
--- a/app/Umbraco/Umbraco.Archetype/Models/ArchetypePropertyModel.cs
+++ b/app/Umbraco/Umbraco.Archetype/Models/ArchetypePropertyModel.cs
@@ -25,6 +25,9 @@ namespace Archetype.Models
[JsonProperty("dataTypeGuid")]
internal string DataTypeGuid { get; set; }
+ [JsonProperty("hostContentType")]
+ internal PublishedContentType HostContentType { get; set; }
+
public T GetValue()
{
@@ -80,7 +83,7 @@ namespace Archetype.Models
private PublishedPropertyType CreateDummyPropertyType(int dataTypeId, string propertyEditorAlias)
{
- return new PublishedPropertyType(null,
+ return new PublishedPropertyType(this.HostContentType,
new PropertyType(new DataTypeDefinition(-1, propertyEditorAlias)
{
Id = dataTypeId
diff --git a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
index 96b59c3..4f82c22 100644
--- a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
+++ b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
@@ -40,7 +40,8 @@ namespace Archetype.PropertyConverters
return defaultValue;
var archetype = new ArchetypeHelper().DeserializeJsonToArchetype(source.ToString(),
- (propertyType != null ? propertyType.DataTypeId : -1));
+ (propertyType != null ? propertyType.DataTypeId : -1),
+ (propertyType != null ? propertyType.ContentType : null));
return archetype;
}