Excluded tags from trashed content (#18164)
This commit is contained in:
@@ -387,7 +387,9 @@ WHERE r.tagId IS NULL";
|
|||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public IEnumerable<ITag> GetTagsForEntityType(TaggableObjectTypes objectType, string? group = null,
|
public IEnumerable<ITag> GetTagsForEntityType(
|
||||||
|
TaggableObjectTypes objectType,
|
||||||
|
string? group = null,
|
||||||
string? culture = null)
|
string? culture = null)
|
||||||
{
|
{
|
||||||
Sql<ISqlContext> sql = GetTagsSql(culture, true);
|
Sql<ISqlContext> sql = GetTagsSql(culture, true);
|
||||||
@@ -401,6 +403,9 @@ WHERE r.tagId IS NULL";
|
|||||||
.Where<NodeDto>(dto => dto.NodeObjectType == nodeObjectType);
|
.Where<NodeDto>(dto => dto.NodeObjectType == nodeObjectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sql = sql
|
||||||
|
.Where<NodeDto>(dto => !dto.Trashed);
|
||||||
|
|
||||||
if (group.IsNullOrWhiteSpace() == false)
|
if (group.IsNullOrWhiteSpace() == false)
|
||||||
{
|
{
|
||||||
sql = sql
|
sql = sql
|
||||||
|
|||||||
@@ -638,6 +638,89 @@ public class TagRepositoryTest : UmbracoIntegrationTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Can_Get_Tags_For_Entity_Type_Excluding_Trashed_Entity()
|
||||||
|
{
|
||||||
|
var provider = ScopeProvider;
|
||||||
|
using (ScopeProvider.CreateScope())
|
||||||
|
{
|
||||||
|
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||||
|
FileService.SaveTemplate(template);
|
||||||
|
|
||||||
|
var contentType = ContentTypeBuilder.CreateSimpleContentType("test", "Test", defaultTemplateId: template.Id);
|
||||||
|
ContentTypeRepository.Save(contentType);
|
||||||
|
|
||||||
|
var content1 = ContentBuilder.CreateSimpleContent(contentType);
|
||||||
|
content1.PublishCulture(CultureImpact.Invariant);
|
||||||
|
content1.PublishedState = PublishedState.Publishing;
|
||||||
|
DocumentRepository.Save(content1);
|
||||||
|
|
||||||
|
var content2 = ContentBuilder.CreateSimpleContent(contentType);
|
||||||
|
content2.PublishCulture(CultureImpact.Invariant);
|
||||||
|
content2.PublishedState = PublishedState.Publishing;
|
||||||
|
content2.Trashed = true;
|
||||||
|
DocumentRepository.Save(content2);
|
||||||
|
|
||||||
|
var mediaType = MediaTypeBuilder.CreateImageMediaType("image2");
|
||||||
|
MediaTypeRepository.Save(mediaType);
|
||||||
|
|
||||||
|
var media1 = MediaBuilder.CreateMediaImage(mediaType, -1);
|
||||||
|
MediaRepository.Save(media1);
|
||||||
|
|
||||||
|
var media2 = MediaBuilder.CreateMediaImage(mediaType, -1);
|
||||||
|
media2.Trashed = true;
|
||||||
|
MediaRepository.Save(media2);
|
||||||
|
|
||||||
|
var repository = CreateRepository(provider);
|
||||||
|
Tag[] tags =
|
||||||
|
{
|
||||||
|
new Tag {Text = "tag1", Group = "test"},
|
||||||
|
new Tag {Text = "tag2", Group = "test1"},
|
||||||
|
new Tag {Text = "tag3", Group = "test"}
|
||||||
|
};
|
||||||
|
|
||||||
|
Tag[] tags2 =
|
||||||
|
{
|
||||||
|
new Tag {Text = "tag4", Group = "test"},
|
||||||
|
new Tag {Text = "tag5", Group = "test1"},
|
||||||
|
new Tag {Text = "tag6", Group = "test"}
|
||||||
|
};
|
||||||
|
|
||||||
|
repository.Assign(
|
||||||
|
content1.Id,
|
||||||
|
contentType.PropertyTypes.First().Id,
|
||||||
|
tags,
|
||||||
|
false);
|
||||||
|
|
||||||
|
repository.Assign(
|
||||||
|
content2.Id,
|
||||||
|
contentType.PropertyTypes.First().Id,
|
||||||
|
tags2,
|
||||||
|
false);
|
||||||
|
|
||||||
|
repository.Assign(
|
||||||
|
media1.Id,
|
||||||
|
contentType.PropertyTypes.First().Id,
|
||||||
|
tags,
|
||||||
|
false);
|
||||||
|
|
||||||
|
repository.Assign(
|
||||||
|
media2.Id,
|
||||||
|
contentType.PropertyTypes.First().Id,
|
||||||
|
tags2,
|
||||||
|
false);
|
||||||
|
|
||||||
|
var result1 = repository.GetTagsForEntityType(TaggableObjectTypes.Content).ToArray();
|
||||||
|
var result2 = repository.GetTagsForEntityType(TaggableObjectTypes.Media).ToArray();
|
||||||
|
var result3 = repository.GetTagsForEntityType(TaggableObjectTypes.All).ToArray();
|
||||||
|
|
||||||
|
const string ExpectedTags = "tag1,tag2,tag3";
|
||||||
|
Assert.AreEqual(ExpectedTags, string.Join(",", result1.Select(x => x.Text)));
|
||||||
|
Assert.AreEqual(ExpectedTags, string.Join(",", result2.Select(x => x.Text)));
|
||||||
|
Assert.AreEqual(ExpectedTags, string.Join(",", result3.Select(x => x.Text)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void Can_Get_Tags_For_Entity_Type()
|
public void Can_Get_Tags_For_Entity_Type()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user