You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2020/10/08 18:42:24 UTC

[allura] branch db/8380b created (now c88b370)

This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a change to branch db/8380b
in repository https://gitbox.apache.org/repos/asf/allura.git.


      at c88b370  [#8380] don't send out a project_created in the middle of project add

This branch includes the following new commits:

     new c88b370  [#8380] don't send out a project_created in the middle of project add

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[allura] 01/01: [#8380] don't send out a project_created in the middle of project add

Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch db/8380b
in repository https://gitbox.apache.org/repos/asf/allura.git

commit c88b370e1717beee8a7978401a2bb74f38a784fa
Author: Dave Brondsema <da...@brondsema.net>
AuthorDate: Thu Oct 8 14:42:17 2020 -0400

    [#8380] don't send out a project_created in the middle of project add
---
 Allura/allura/lib/plugin.py                 | 12 ++++++++----
 Allura/allura/lib/project_create_helpers.py |  4 +++-
 Allura/allura/model/neighborhood.py         |  7 ++++---
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index d6175aa..7c603b3 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -956,13 +956,15 @@ class ProjectRegistrationProvider(object):
             state(p).soil()
         return p
 
-    def register_project(self, neighborhood, shortname, project_name, user, user_project, private_project, apps=None):
+    def register_project(self, neighborhood, shortname, project_name, user, user_project, private_project, apps=None,
+                         omit_event=False, **kwargs):
         '''Register a new project in the neighborhood.  The given user will
         become the project's superuser.
         '''
         self.validate_project(neighborhood, shortname,
                               project_name, user, user_project, private_project)
-        return self._create_project(neighborhood, shortname, project_name, user, user_project, private_project, apps)
+        return self._create_project(neighborhood, shortname, project_name, user, user_project, private_project, apps,
+                                    omit_event=omit_event)
 
     def validate_project(self, neighborhood, shortname, project_name, user, user_project, private_project):
         '''
@@ -1010,7 +1012,8 @@ class ProjectRegistrationProvider(object):
         """
         return dict()
 
-    def _create_project(self, neighborhood, shortname, project_name, user, user_project, private_project, apps):
+    def _create_project(self, neighborhood, shortname, project_name, user, user_project, private_project, apps,
+                        omit_event=False):
         '''
         Actually create the project, no validation.  This should not be called directly
         under normal circumstances.
@@ -1121,7 +1124,8 @@ class ProjectRegistrationProvider(object):
             ThreadLocalORMSession.flush_all()
             # have to add user to context, since this may occur inside auth code
             # for user-project reg, and c.user isn't set yet
-            g.post_event('project_created')
+            if not omit_event:
+                g.post_event('project_created')
         return p
 
     def register_subproject(self, project, name, user, install_apps, project_name=None):
diff --git a/Allura/allura/lib/project_create_helpers.py b/Allura/allura/lib/project_create_helpers.py
index a7c8201..5e08fb3 100644
--- a/Allura/allura/lib/project_create_helpers.py
+++ b/Allura/allura/lib/project_create_helpers.py
@@ -261,7 +261,9 @@ def create_project_with_attrs(p, nbhd, update=False, ensure_tools=False):
         project = nbhd.register_project(shortname,
                                         p.admin,
                                         project_name=p.name,
-                                        private_project=p.private)
+                                        private_project=p.private,
+                                        omit_event=True,  # because we'll fire it later after setting other fields
+                                        )
     else:
         creating = False
         log.info('Updating project "%s".' % (shortname))
diff --git a/Allura/allura/model/neighborhood.py b/Allura/allura/model/neighborhood.py
index 33170fb..ffc6c6e 100644
--- a/Allura/allura/model/neighborhood.py
+++ b/Allura/allura/model/neighborhood.py
@@ -144,15 +144,16 @@ class Neighborhood(MappedClass):
 
         return total
 
-    def register_project(self, shortname, user=None, project_name=None, user_project=False, private_project=False, apps=None):
+    def register_project(self, shortname, user=None, project_name=None, user_project=False, private_project=False,
+                         apps=None, omit_event=False, **kwargs):
         '''Register a new project in the neighborhood.  The given user will
         become the project's superuser.  If no user is specified, c.user is used.
         '''
         provider = plugin.ProjectRegistrationProvider.get()
         if project_name is None:
             project_name = shortname
-        return provider.register_project(
-            self, shortname, project_name, user or getattr(c, 'user', None), user_project, private_project, apps)
+        return provider.register_project(self, shortname, project_name, user or getattr(c, 'user', None), user_project,
+                                         private_project, apps, omit_event=omit_event, **kwargs)
 
     def get_custom_css(self):
         if self.allow_custom_css: