Revision 58708
Added by Konstantina Galouni almost 4 years ago
SubCategoryController.java | ||
---|---|---|
77 | 77 |
log.debug("Alias: "+subcategoryFull.getAlias() + " - Id: "+subcategoryFull.getId() + " - Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId); |
78 | 78 |
|
79 | 79 |
Category category = checkForExceptions(stakeholderId, topicId, categoryId); |
80 |
|
|
81 |
SubCategory<String> oldSubcategory = null; |
|
82 |
if(subcategoryFull.getId() != null) { |
|
83 |
oldSubcategory = subCategoryDAO.findById(subcategoryFull.getId()); |
|
84 |
} |
|
85 |
|
|
80 | 86 |
SubCategory<String> subCategory = new SubCategory<>(subcategoryFull); |
81 | 87 |
|
82 | 88 |
// List<String> charts = new ArrayList<>(); |
... | ... | |
110 | 116 |
if(subcategoryFull.getId() == null) { |
111 | 117 |
onSaveDefaultSubCategory(subCategory, categoryId); |
112 | 118 |
} else { |
113 |
onUpdateDefaultSubCategory(subCategory); |
|
119 |
onUpdateDefaultSubCategory(subCategory, oldSubcategory);
|
|
114 | 120 |
} |
115 | 121 |
} |
116 | 122 |
|
... | ... | |
148 | 154 |
} |
149 | 155 |
} |
150 | 156 |
|
151 |
public void onUpdateDefaultSubCategory(SubCategory subCategory) { |
|
157 |
public void onUpdateDefaultSubCategory(SubCategory subCategory, SubCategory oldSubcategory) {
|
|
152 | 158 |
log.debug("On update default subCategory"); |
153 | 159 |
|
154 | 160 |
List<SubCategory> subCategories = subCategoryDAO.findByDefaultId(subCategory.getId()); |
155 | 161 |
boolean changed = false; |
156 | 162 |
for(SubCategory subCategoryBasedOnDefault : subCategories) { |
157 |
if(subCategory.getName() != null && !subCategory.getName().equals(subCategoryBasedOnDefault.getName())) { |
|
163 |
if(subCategory.getName() != null && !subCategory.getName().equals(subCategoryBasedOnDefault.getName()) |
|
164 |
&& (oldSubcategory.getName() == null || oldSubcategory.getName().equals(subCategoryBasedOnDefault.getName()))) { |
|
165 |
|
|
166 |
subCategoryBasedOnDefault.setName(subCategory.getName()); |
|
158 | 167 |
changed = true; |
159 | 168 |
} |
160 |
if(subCategory.getDescription() != null && !subCategory.getDescription().equals(subCategoryBasedOnDefault.getDescription())) { |
|
169 |
if(subCategory.getDescription() != null && !subCategory.getDescription().equals(subCategoryBasedOnDefault.getDescription()) |
|
170 |
&& (oldSubcategory.getDescription() == null || oldSubcategory.getDescription().equals(subCategoryBasedOnDefault.getDescription()))) { |
|
171 |
|
|
172 |
subCategoryBasedOnDefault.setDescription(subCategory.getDescription()); |
|
161 | 173 |
changed = true; |
162 | 174 |
} |
163 | 175 |
|
164 | 176 |
if(!changed) { |
165 |
break; |
|
177 |
// break; |
|
178 |
continue; |
|
166 | 179 |
} |
167 |
subCategoryBasedOnDefault.setName(subCategory.getName()); |
|
168 |
subCategoryBasedOnDefault.setDescription(subCategory.getDescription()); |
|
180 |
|
|
181 |
// subCategoryBasedOnDefault.setName(subCategory.getName()); |
|
182 |
// subCategoryBasedOnDefault.setDescription(subCategory.getDescription()); |
|
169 | 183 |
subCategoryDAO.save(subCategoryBasedOnDefault); |
170 | 184 |
} |
171 | 185 |
} |
Also available in: Unified diff
[Trunk | Monitor Service]:
1. Stakeholder.java: Field 'name' added.
2. Section.java: In method 'copyFromDefault()' initialize indicators (empty list).
3. StakeholderDAO.java & MongoDBStakeholderDAO.java: Added method 'Stakeholder findByTopicsContaining(String topic);' (needed to find in which Stakeholder a Topic belongs - section needs stakeholderAlias).
4. TopicDAO.java & MongoDBTopicDAO.java: Added method 'Topic findByCategoriesContaining(String category);' (needed to find in which Topic a Category belongs - section needs stakeholderAlias).
5. CategoryDAO.java & MongoDBCategoryDAO.java: Added method 'Category findBySubCategoriesContaining(String subCategory);' (needed to find in which Category a SubCategory belongs - section needs stakeholderAlias).
6. TopicController.java & CategoryController.java & SubCategoryController.java & SectionController.java & IndicatorController.java:
Bug fixes & changed logic for updates on default profile: When a value in a profile is same as the value in default, inherit changes in default value, otherwise keep local profile's options.