Merge branch '1.10.x' into issue/8684

# Conflicts:
#	src/Orchard/Orchard.Framework.csproj
This commit is contained in:
Benedek Farkas
2023-07-11 15:53:44 +02:00
5 changed files with 55 additions and 6 deletions

View File

@@ -29,7 +29,7 @@ namespace TinyMce.Settings {
}
public override IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel) {
if (!_contentLinksDependenciesEnabled || !_htmlFields.Any(x => x.Equals(builder.Name, StringComparison.InvariantCultureIgnoreCase)))
if (!_contentLinksDependenciesEnabled || !_htmlFields.Any(x => x.Equals(builder.FieldType, StringComparison.InvariantCultureIgnoreCase)))
yield break;
var model = new ContentLinksSettings();
@@ -56,4 +56,4 @@ namespace TinyMce.Settings {
yield return DefinitionTemplate(model);
}
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
namespace Orchard.Data {
/// <summary>
/// Marks whether a class should be mapped as an NHibernate record
/// </summary>
public class MapAsRecordAttribute : Attribute {
private readonly bool _enabled;
public MapAsRecordAttribute() : this(true) { }
public MapAsRecordAttribute(bool enabled) {
_enabled = enabled;
}
public bool Enabled => _enabled;
}
}

View File

@@ -6,6 +6,7 @@ using System.Web.Mvc;
using Autofac.Core;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Records;
using Orchard.Data;
using Orchard.Environment.Configuration;
using Orchard.Environment.Descriptor.Models;
using Orchard.Environment.Extensions;
@@ -96,7 +97,7 @@ namespace Orchard.Environment.ShellBuilders {
}
var feature = availableFeatures[shellFeature];
foreach (var childDependency in ExpandDependenciesInternal(availableFeatures, feature.Dependencies, dependentFeatureDescriptor: feature))
yield return childDependency;
@@ -197,7 +198,12 @@ namespace Orchard.Environment.ShellBuilders {
}
private static bool IsRecord(Type type) {
return ((type.Namespace ?? "").EndsWith(".Models") || (type.Namespace ?? "").EndsWith(".Records")) &&
var mapAsRecordAttr = type.GetCustomAttributes(typeof(MapAsRecordAttribute), false)
.OfType<MapAsRecordAttribute>()
.FirstOrDefault();
return ((type.Namespace ?? "").EndsWith(".Models") || (type.Namespace ?? "").EndsWith(".Records") || mapAsRecordAttr?.Enabled == true) &&
mapAsRecordAttr?.Enabled != false &&
type.GetProperty("Id") != null &&
(type.GetProperty("Id").GetAccessors()).All(x => x.IsVirtual) &&
!type.IsSealed &&

View File

@@ -62,12 +62,36 @@ namespace Orchard.Localization.Services {
return _workContextAccessor.GetContext().CurrentCulture;
}
protected Dictionary<int, CultureRecord> GetAllCulturesById() {
return _cacheManager.Get("all_culture_records_by_id", true, context => {
context.Monitor(_signals.When("culturesChanged"));
return _cultureRepository.Table
.ToDictionary(cr => cr.Id);
});
}
public CultureRecord GetCultureById(int id) {
return _cultureRepository.Get(id);
var cultures = GetAllCulturesById();
CultureRecord result;
cultures.TryGetValue(id, out result);
return result;
}
protected Dictionary<string, CultureRecord> GetAllCulturesByName() {
return _cacheManager.Get("all_culture_records_by_name", true, context => {
context.Monitor(_signals.When("culturesChanged"));
return _cultureRepository.Table
.ToDictionary(cr => cr.Culture);
});
}
public CultureRecord GetCultureByName(string cultureName) {
return _cultureRepository.Get(cr => cr.Culture == cultureName);
var cultures = GetAllCulturesByName();
CultureRecord result;
cultures.TryGetValue(cultureName, out result);
return result;
}
public string GetSiteCulture() {

View File

@@ -157,6 +157,7 @@
<Compile Include="ContentManagement\Extensions\DriverResultExtensions.cs" />
<Compile Include="ContentManagement\Handlers\CloneContentContext.cs" />
<Compile Include="ContentManagement\IGlobalCriteriaProvider.cs" />
<Compile Include="Data\MapAsRecordAttribute.cs" />
<Compile Include="Data\Migration\Interpreters\PostgreSqlCommandInterpreter.cs" />
<Compile Include="Data\NoLockInterceptor.cs" />
<Compile Include="Data\Providers\DefaultNoLockTableProvider.cs" />