#19892: Fixing types overriding when creating taxonomies

Work Item: 19892

--HG--
branch : 1.x
extra : rebase_source : 7eec6c6fb3c099c290c0a526f1dd6b1cc2be777e
This commit is contained in:
Sebastien Ros 2013-07-13 15:23:42 -07:00
parent aaa0bd7592
commit 4d576e9ef0
2 changed files with 9 additions and 2 deletions

View File

@ -21,12 +21,13 @@ namespace Orchard.Taxonomies.Handlers {
Filters.Add(StorageFilter.For(repository));
OnPublished<TaxonomyPart>((context, part) => {
var previousTermTypeName = part.TermTypeName;
taxonomyService.CreateTermContentType(part);
if (previousName != null && part.Name != previousName) {
// remove previous term type
contentDefinitionManager.DeleteTypeDefinition(previousName + " Term");
contentDefinitionManager.DeleteTypeDefinition(previousTermTypeName);
// update existing fields
foreach (var partDefinition in contentDefinitionManager.ListPartDefinitions()) {

View File

@ -114,7 +114,13 @@ namespace Orchard.Taxonomies.Services {
}
public string GenerateTermTypeName(string taxonomyName) {
return taxonomyName.ToSafeName();
var name = taxonomyName.ToSafeName() + "Term";
int i = 2;
while (_contentDefinitionManager.GetTypeDefinition(name) != null) {
name = taxonomyName.ToSafeName() + i++;
}
return name;
}
public TermPart NewTerm(TaxonomyPart taxonomy) {