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 2017/01/31 20:27:07 UTC

[5/7] allura git commit: [#8143] refactor icon-saving logic into method; use it from nbhd-template code too

[#8143] refactor icon-saving logic into method; use it from nbhd-template code too


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/a124e25d
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/a124e25d
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/a124e25d

Branch: refs/heads/db/8143
Commit: a124e25d95678ad676da23130d28f84e42420a67
Parents: 419df7e
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Jan 31 11:51:45 2017 -0500
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Jan 31 15:12:31 2017 -0500

----------------------------------------------------------------------
 Allura/allura/ext/admin/admin_main.py | 11 +----------
 Allura/allura/lib/plugin.py           |  9 ++-------
 Allura/allura/model/project.py        | 12 ++++++++++++
 3 files changed, 15 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/a124e25d/Allura/allura/ext/admin/admin_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index ef0f666..44c34df 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -451,16 +451,7 @@ class ProjectAdminController(BaseController):
             if c.project.icon:
                 M.ProjectFile.query.remove(dict(project_id=c.project._id, category=re.compile(r'^icon')))
             M.AuditLog.log('update project icon')
-            icon_orig, icon_thumb = M.ProjectFile.save_image(
-                icon.filename, icon.file, content_type=icon.type,
-                square=True, thumbnail_size=(48, 48),
-                thumbnail_meta=dict(project_id=c.project._id, category='icon'),
-                save_original=True,
-                original_meta=dict(project_id=c.project._id, category='icon_original'),
-            )
-            # store the dimensions so we don't have to read the whole image each time we need to know
-            icon_orig_img = PIL.Image.open(icon_orig.rfile())
-            c.project.set_tool_data('allura', icon_original_size=icon_orig_img.size)
+            c.project.save_icon(icon.filename, icon.file, content_type=icon.type)
         g.post_event('project_updated')
         flash('Saved', 'success')
         redirect('overview')

http://git-wip-us.apache.org/repos/asf/allura/blob/a124e25d/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 952dc72..a0c20bf 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -941,13 +941,8 @@ class ProjectRegistrationProvider(object):
                     troves.append(
                         M.TroveCategory.query.get(trove_cat_id=trove_id)._id)
         if 'icon' in project_template:
-            icon_file = StringIO(
-                urlopen(project_template['icon']['url']).read())
-            M.ProjectFile.save_image(
-                project_template['icon']['filename'], icon_file,
-                square=True, thumbnail_size=(48, 48),
-                thumbnail_meta=dict(project_id=p._id, category='icon'))
-            # FIXME
+            icon_file = StringIO(urlopen(project_template['icon']['url']).read())
+            p.save_icon(project_template['icon']['filename'], icon_file)
 
         if user_project:
             # Allow for special user-only tools

http://git-wip-us.apache.org/repos/asf/allura/blob/a124e25d/Allura/allura/model/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/project.py b/Allura/allura/model/project.py
index db85b84..f05c0f0 100644
--- a/Allura/allura/model/project.py
+++ b/Allura/allura/model/project.py
@@ -358,6 +358,18 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject):
             project_id=self._id,
             category='screenshot')).sort('sort').all()
 
+    def save_icon(self, filename, file_input, content_type=None):
+        icon_orig, icon_thumb = ProjectFile.save_image(
+            filename, file_input, content_type=content_type,
+            square=True, thumbnail_size=(48, 48),
+            thumbnail_meta=dict(project_id=self._id, category='icon'),
+            save_original=True,
+            original_meta=dict(project_id=self._id, category='icon_original'),
+        )
+        # store the dimensions so we don't have to read the whole image each time we need to know
+        icon_orig_img = PIL.Image.open(icon_orig.rfile())
+        self.set_tool_data('allura', icon_original_size=icon_orig_img.size)
+
     @property
     def icon(self):
         return self.icon_sized(DEFAULT_ICON_WIDTH)