#5355: Fixing that the selected terms in a TaxonomyField were cleared out when updating an editor group the field isn't displayed in

This commit is contained in:
Lombiq
2015-06-06 00:34:55 +02:00
committed by Benedek Farkas
parent 30411b6be5
commit 0c7b52e1be

View File

@@ -83,9 +83,11 @@ namespace Orchard.Taxonomies.Drivers {
}
protected override DriverResult Editor(ContentPart part, TaxonomyField field, IUpdateModel updater, dynamic shapeHelper) {
var viewModel = new TaxonomyFieldViewModel { Terms = new List<TermEntry>() };
// Initializing viewmodel using the terms that are already selected to prevent loosing them when updating an editor group this field isn't displayed in.
var viewModel = new TaxonomyFieldViewModel { Terms = field.Terms.Select(t => t.CreateTermEntry()).ToList() };
foreach (var item in viewModel.Terms) item.IsChecked = true;
if(updater.TryUpdateModel(viewModel, GetPrefix(field, part), null, null)) {
if (updater.TryUpdateModel(viewModel, GetPrefix(field, part), null, null)) {
var checkedTerms = viewModel.Terms
.Where(t => (t.IsChecked || t.Id == viewModel.SingleTermId))
.Select(t => GetOrCreateTerm(t, viewModel.TaxonomyId, field))