Project

General

Profile

« Previous | Next » 

Revision 58708

[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.

View differences:

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