Skip to content

Commit 3a69eaf

Browse files
committed
reverted #1143, fixed #1144
1 parent 906905d commit 3a69eaf

5 files changed

Lines changed: 75 additions & 70 deletions

File tree

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/zclassic/controller/Installer.xtend

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,18 @@ class Installer {
112112
«FOR entity : getCategorisableEntities»
113113

114114
$registry = new CategoryRegistryEntity();
115-
$entityManager->transactional(function($entityManager) use($registry, $categoryHelper, $categoryGlobal) {
116-
$registry->setModname('«appName»');
117-
$registry->setEntityname('«entity.name.formatForCodeCapital»Entity');
118-
$registry->setProperty($categoryHelper->getPrimaryProperty('«entity.name.formatForCodeCapital»'));
119-
$registry->setCategory($categoryGlobal);
115+
$registry->setModname('«appName»');
116+
$registry->setEntityname('«entity.name.formatForCodeCapital»Entity');
117+
$registry->setProperty($categoryHelper->getPrimaryProperty('«entity.name.formatForCodeCapital»'));
118+
$registry->setCategory($categoryGlobal);
119+
120+
try {
120121
$entityManager->persist($registry);
121-
});
122+
$entityManager->flush();
123+
} catch (\Exception $exception) {
124+
$this->addFlash('error', $this->__f('Error! Could not create a category registry for the %entity% entity.', ['%entity%' => '«entity.name.formatForDisplay»']));
125+
$logger->error('{app}: User {user} could not create a category registry for {entities} during installation. Error details: {errorMessage}.', ['app' => '«appName»', 'user' => $userName, 'entities' => '«entity.nameMultiple.formatForDisplay»', 'errorMessage' => $exception->getMessage()]);
126+
}
122127
$categoryRegistryIdsPerEntity['«entity.name.formatForCode»'] = $registry->getId();
123128
«ENDFOR»
124129
«ENDIF»
@@ -239,13 +244,12 @@ class Installer {
239244
«IF hasCategorisableEntities»
240245

241246
// remove category registry entries
242-
$registries = $this->container->get('zikula_categories_module.category_registry_repository')->findBy(['modname' => '«appName»']);
243247
$entityManager = $this->container->get('«entityManagerService»');
244-
$entityManager->transactional(function($entityManager) use($registries) {
245-
foreach ($registries as $registry) {
246-
$entityManager->remove($registry);
247-
}
248-
});
248+
$registries = $this->container->get('zikula_categories_module.category_registry_repository')->findBy(['modname' => '«appName»']);
249+
foreach ($registries as $registry) {
250+
$entityManager->remove($registry);
251+
}
252+
$entityManager->flush();
249253
«ENDIF»
250254
«IF hasUploads»
251255

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/zclassic/controller/additions/AjaxController.xtend

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -466,10 +466,11 @@ class AjaxController {
466466
return «IF targets('2.0')»$this->json«ELSE»new JsonResponse«ENDIF»($this->__('No such item.'), JsonResponse::HTTP_NOT_FOUND);
467467
}
468468

469-
$entityFactory->getObjectManager()->transactional(function($entityManager) use($entity) {
470-
// toggle the flag
471-
$entity[$field] = !$entity[$field];
472-
});
469+
// toggle the flag
470+
$entity[$field] = !$entity[$field];
471+
472+
// save entity back to database
473+
$entityFactory->getObjectManager()->flush();
473474

474475
$logger = $this->get('logger');
475476
$logArgs = ['app' => '«appName»', 'user' => $this->get('zikula_users_module.current_user')->get('uname'), 'field' => $field, 'entity' => $objectType, 'id' => $id];
@@ -778,17 +779,16 @@ class AjaxController {
778779
return «IF targets('2.0')»$this->json«ELSE»new JsonResponse«ENDIF»($returnValue);
779780
}
780781
781-
$entityManager->transactional(function($entityManager) use($repository, $entity, $moveDirection) {
782-
if ($moveDirection == 'top') {
783-
$repository->moveUp($entity, true);
784-
} elseif ($moveDirection == 'up') {
785-
$repository->moveUp($entity, 1);
786-
} elseif ($moveDirection == 'down') {
787-
$repository->moveDown($entity, 1);
788-
} elseif ($moveDirection == 'bottom') {
789-
$repository->moveDown($entity, true);
790-
}
791-
});
782+
if ($moveDirection == 'top') {
783+
$repository->moveUp($entity, true);
784+
} elseif ($moveDirection == 'up') {
785+
$repository->moveUp($entity, 1);
786+
} elseif ($moveDirection == 'down') {
787+
$repository->moveDown($entity, 1);
788+
} elseif ($moveDirection == 'bottom') {
789+
$repository->moveDown($entity, true);
790+
}
791+
$entityManager->flush();
792792
'''
793793

794794
def private treeOperationMoveNodeTo(Application it) '''
@@ -819,20 +819,20 @@ class AjaxController {
819819
return «IF targets('2.0')»$this->json«ELSE»new JsonResponse«ENDIF»($returnValue);
820820
}
821821
822-
$entityManager->transactional(function($entityManager) use($entity, $destEntity, $repository«IF hasStandardFieldEntities», $currentUser«ENDIF») {
823-
$entityManager->persist($destEntity);
824-
«IF hasStandardFieldEntities»
825-
$entityManager->persist($currentUser);
826-
«ENDIF»
822+
$entityManager->persist($destEntity);
823+
«IF hasStandardFieldEntities»
824+
$entityManager->persist($currentUser);
825+
«ENDIF»
827826
828-
if ($moveDirection == 'after') {
829-
$repository->persistAsNextSiblingOf($entity, $destEntity);
830-
} elseif ($moveDirection == 'before') {
831-
$repository->persistAsPrevSiblingOf($entity, $destEntity);
832-
} elseif ($moveDirection == 'bottom') {
833-
$repository->persistAsLastChildOf($entity, $destEntity);
834-
}
835-
});
827+
if ($moveDirection == 'after') {
828+
$repository->persistAsNextSiblingOf($entity, $destEntity);
829+
} elseif ($moveDirection == 'before') {
830+
$repository->persistAsPrevSiblingOf($entity, $destEntity);
831+
} elseif ($moveDirection == 'bottom') {
832+
$repository->persistAsLastChildOf($entity, $destEntity);
833+
}
834+
835+
$entityManager->flush();
836836
'''
837837

838838
def private updateSortPositionsBase(Application it) '''
@@ -888,16 +888,19 @@ class AjaxController {
888888

889889
$sortFieldSetter = 'set' . ucfirst($sortableFieldMap[$objectType]);
890890
$sortCounter = $min;
891-
$entityFactory->getObjectManager()->transactional(function($entityManager) use($itemIds, $repository, $sortFieldSetter, $sortCounter) {
892-
foreach ($itemIds as $itemId) {
893-
if (empty($itemId) || !is_numeric($itemId)) {
894-
continue;
895-
}
896-
$entity = $repository->selectById($itemId);
897-
$entity->$sortFieldSetter($sortCounter);
898-
$sortCounter++;
891+
892+
// update sort values
893+
foreach ($itemIds as $itemId) {
894+
if (empty($itemId) || !is_numeric($itemId)) {
895+
continue;
899896
}
900-
});
897+
$entity = $repository->selectById($itemId);
898+
$entity->$sortFieldSetter($sortCounter);
899+
$sortCounter++;
900+
}
901+
902+
// save entities back to database
903+
$entityFactory->getObjectManager()->flush();
901904

902905
// return response
903906
return «IF targets('2.0')»$this->json«ELSE»new JsonResponse«ENDIF»([
@@ -991,9 +994,8 @@ class AjaxController {
991994
$assignment->setUpdatedDate(new \DateTime());
992995

993996
$entityManager = $this->get('«appService».entity_factory')->getObjectManager();
994-
$entityManager->transactional(function($entityManager) use($assignment) {
995-
$entityManager->persist($assignment);
996-
});
997+
$entityManager->persist($assignment);
998+
$entityManager->flush();
997999

9981000
// return response
9991001
return «IF targets('2.0')»$this->json«ELSE»new JsonResponse«ENDIF»([

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/zclassic/controller/helper/HookHelper.xtend

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -675,11 +675,11 @@ class HookHelper {
675675
$query = $qb->getQuery();
676676
$assignments = $query->getResult();
677677

678-
$entityManager->transactional(function($entityManager) use($assignments, $url) {
679-
foreach ($assignments as $assignment) {
680-
$assignment->setSubscriberUrl($url);
681-
}
682-
});
678+
foreach ($assignments as $assignment) {
679+
$assignment->setSubscriberUrl($url);
680+
}
681+
682+
$entityManager->flush();
683683
}
684684

685685
/**

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/zclassic/controller/helper/TranslatableHelper.xtend

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,11 @@ class TranslatableHelper {
258258
continue;
259259
}
260260
$translatedFields = $form['translations' . $language];
261-
$entityManager->transactional(function($entityManager) use($entity, $translatedFields, $language) {
262-
foreach ($translatedFields as $fieldName => $formField) {
263-
$entity[$fieldName] = $formField->getData();
264-
}
265-
$entity['locale'] = $language;
266-
});
261+
foreach ($translatedFields as $fieldName => $formField) {
262+
$entity[$fieldName] = $formField->getData();
263+
}
264+
$entity['locale'] = $language;
265+
$entityManager->flush();
267266
}
268267
}
269268
'''

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/zclassic/controller/helper/WorkflowHelper.xtend

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -404,13 +404,13 @@ class WorkflowHelper {
404404
try {
405405
$workflow->apply($entity, $actionId);
406406

407-
$entityManager->transactional(function($entityManager) use ($actionId) {
408-
if ($actionId == 'delete') {
409-
$entityManager->remove($entity);
410-
} else {
411-
$entityManager->persist($entity);
412-
}
413-
});
407+
if ($actionId == 'delete') {
408+
$entityManager->remove($entity);
409+
} else {
410+
$entityManager->persist($entity);
411+
}
412+
$entityManager->flush();
413+
414414
$result = true;
415415
if ($actionId == 'delete') {
416416
$this->logger->notice('{app}: User {user} deleted an entity.', $logArgs);

0 commit comments

Comments
 (0)