\r
Set<Taxon> taxa = new HashSet<Taxon>();\r
List<Media> taxonMedia = new ArrayList<Media>();\r
+ List<Media> nonImageGalleryImages = new ArrayList<Media>();\r
\r
if (limitToGalleries == null) {\r
limitToGalleries = false;\r
if (!limitToGalleries || taxonDescription.isImageGallery()) {\r
for (DescriptionElementBase element : taxonDescription.getElements()) {\r
for (Media media : element.getMedia()) {\r
- taxonMedia.add(media);\r
+ if(taxonDescription.isImageGallery()){\r
+ taxonMedia.add(media);\r
+ }\r
+ else{\r
+ nonImageGalleryImages.add(media);\r
+ }\r
}\r
}\r
}\r
}\r
+ //put images from image gallery first (#3242)\r
+ taxonMedia.addAll(nonImageGalleryImages);\r
}\r
\r
\r
}\r
}\r
config.getTaxonNodeConfig().setDeleteTaxon(false);\r
- List<UUID> deletedNodes = nodeService.deleteTaxonNodes(nodesList, config);\r
- if (deletedNodes.isEmpty() && !nodesList.isEmpty()){\r
- result.setError();\r
- result.addException(new Exception("There are an error in deleting the taxon nodes."));\r
+ DeleteResult resultNodes = nodeService.deleteTaxonNodes(nodesList, config);\r
+ if (!resultNodes.isOk()){\r
+ result.addExceptions(resultNodes.getExceptions());\r
+ result.setStatus(resultNodes.getStatus());\r
}\r
}\r
if (!success){\r
\r
//PolytomousKey TODO\r
\r
- \r
+\r
//TaxonNameBase\r
if (config.isDeleteNameIfPossible()){\r
\r
if ((taxon.getTaxonNodes() == null || taxon.getTaxonNodes().size()== 0) && name != null ){\r
taxon = (Taxon) HibernateProxyHelper.deproxy(taxon);\r
name.removeTaxonBase(taxon);\r
- nameService.merge(name);\r
+ nameService.saveOrUpdate(name);\r
DeleteResult nameResult = new DeleteResult();\r
\r
nameResult = nameService.delete(name, config.getNameDeletionConfig());\r
@Override\r
public List<String> isDeletable(TaxonBase taxonBase, DeleteConfiguratorBase config){\r
List<String> result = new ArrayList<String>();\r
- Set<CdmBase> references = commonService.getReferencingObjects(taxonBase);\r
+ Set<CdmBase> references = commonService.getReferencingObjectsForDeletion(taxonBase);\r
if (taxonBase instanceof Taxon){\r
TaxonDeletionConfigurator taxonConfig = (TaxonDeletionConfigurator) config;\r
result = isDeletableForTaxon(references, taxonConfig);\r
String message;\r
List<String> result = new ArrayList<String>();\r
for (CdmBase ref: references){\r
- if (!(ref instanceof SynonymRelationship || ref instanceof Taxon || ref instanceof TaxonNameBase)){\r
+ if (!(ref instanceof SynonymRelationship || ref instanceof Taxon || ref instanceof TaxonNameBase )){\r
message = "The Synonym can't be deleted as long as it is referenced by " + ref.getClass().getSimpleName() + " with id "+ ref.getId();\r
result.add(message);\r
}\r
}\r
return result;\r
}\r
+ @Override\r
+ public List<TaxonBase> findTaxaByName(MatchingTaxonConfigurator config){\r
+ List<TaxonBase> taxonList = dao.getTaxaByName(true, false, false, config.getTaxonNameTitle(), null, MatchMode.EXACT, null, 0, 0, config.getPropertyPath());\r
+ return taxonList;\r
+ }\r
+\r
\r
- \r
}\r