Adding field name and field type name information to PartFieldDefinitionBuilder to allow field settings to be used and persisted correctly. Naively written code in external modules such as DateTimeField,ImageField drivers

can be updated. Also removed previous workaround.

--HG--
branch : 1.x
This commit is contained in:
Suha Can
2011-06-01 13:36:33 -07:00
parent e353220ecf
commit 34755f6205
3 changed files with 12 additions and 7 deletions

View File

@@ -86,6 +86,14 @@ namespace Orchard.ContentManagement.MetaData.Builders {
return new ContentPartFieldDefinition(_fieldDefinition, _fieldName, _settings);
}
public override string Name {
get { return _fieldName; }
}
public override string FieldType {
get { return _fieldDefinition.Name; }
}
public override ContentPartFieldDefinitionBuilder OfType(ContentFieldDefinition fieldDefinition) {
_fieldDefinition = fieldDefinition;
return this;

View File

@@ -14,6 +14,9 @@ namespace Orchard.ContentManagement.MetaData.Builders {
return this;
}
public abstract string Name { get; }
public abstract string FieldType { get; }
public abstract ContentPartFieldDefinitionBuilder OfType(ContentFieldDefinition fieldDefinition);
public abstract ContentPartFieldDefinitionBuilder OfType(string fieldType);
}

View File

@@ -26,13 +26,7 @@ namespace Orchard.ContentManagement.MetaData.Services {
var partElement = NewElement(partDefinition.Name, partDefinition.Settings);
foreach(var partField in partDefinition.Fields) {
var attributeName = partField.Name + "." + partField.FieldDefinition.Name;
var fieldSettings = new SettingsDictionary();
foreach (var partFieldSetting in partField.Settings.Keys) {
if (partFieldSetting.StartsWith(partField.FieldDefinition.Name)) {
fieldSettings.Add(partFieldSetting, partField.Settings[partFieldSetting]);
}
}
var partFieldElement = NewElement(attributeName, fieldSettings);
var partFieldElement = NewElement(attributeName, partField.Settings);
partElement.Add(partFieldElement);
}
return partElement;