mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Don't migrate Media Picker fields twice
When attached to a custom part, fields were migrated twice
This commit is contained in:
@@ -209,21 +209,28 @@ namespace Upgrade.Controllers {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var processedParts = new List<string>();
|
||||||
foreach (var match in matches) {
|
foreach (var match in matches) {
|
||||||
|
|
||||||
|
// process each part only once as they could be used by multiple content types
|
||||||
|
if (processedParts.Contains(match.Part.PartDefinition.Name)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
processedParts.Add(match.Part.PartDefinition.Name);
|
||||||
|
|
||||||
string hint, required;
|
string hint, required;
|
||||||
match.Field.Settings.TryGetValue("MediaPickerFieldSettings.Hint", out hint);
|
match.Field.Settings.TryGetValue("MediaPickerFieldSettings.Hint", out hint);
|
||||||
match.Field.Settings.TryGetValue("MediaPickerFieldSettings.Required", out required);
|
match.Field.Settings.TryGetValue("MediaPickerFieldSettings.Required", out required);
|
||||||
|
|
||||||
_contentDefinitionManager.AlterPartDefinition(match.Part.PartDefinition.Name,
|
_contentDefinitionManager.AlterPartDefinition(match.Part.PartDefinition.Name, cfg => cfg.RemoveField(match.Field.Name));
|
||||||
cfg => cfg.RemoveField(match.Field.Name));
|
|
||||||
|
|
||||||
_contentDefinitionManager.AlterPartDefinition(match.Part.PartDefinition.Name, cfg => cfg
|
_contentDefinitionManager.AlterPartDefinition(match.Part.PartDefinition.Name, cfg => cfg
|
||||||
.WithField(match.Field.Name, builder => builder
|
.WithField(match.Field.Name, builder => builder
|
||||||
.OfType("MediaLibraryPickerField")
|
.OfType("MediaLibraryPickerField")
|
||||||
.WithDisplayName(match.Field.DisplayName)
|
.WithDisplayName(match.Field.DisplayName)
|
||||||
.WithSetting("MediaLibraryPickerFieldSettings.Hint", hint)
|
.WithSetting("MediaLibraryPickerFieldSettings.Hint", hint ?? "")
|
||||||
.WithSetting("MediaLibraryPickerFieldSettings.Required", required)
|
.WithSetting("MediaLibraryPickerFieldSettings.Required", required ?? "")
|
||||||
.WithSetting("MediaLibraryPickerFieldSettings.Multiple", false.ToString(CultureInfo.InvariantCulture))
|
.WithSetting("MediaLibraryPickerFieldSettings.Multiple", false.ToString(CultureInfo.InvariantCulture))
|
||||||
.WithSetting("MediaLibraryPickerFieldSettings.DisplayedContentTypes", String.Empty)
|
.WithSetting("MediaLibraryPickerFieldSettings.DisplayedContentTypes", String.Empty)
|
||||||
));
|
));
|
||||||
|
Reference in New Issue
Block a user