ticket:23 add migration tool
diff --git a/Allura/allura/ext/user_profile/templates/user_index.html b/Allura/allura/ext/user_profile/templates/user_index.html
index af87c8e..2ccaacd 100644
--- a/Allura/allura/ext/user_profile/templates/user_index.html
+++ b/Allura/allura/ext/user_profile/templates/user_index.html
@@ -22,7 +22,6 @@
{% if user.preferences.email_address %}
<p>{{lib.gravatar(user)}}</p>
{% endif %}
- {{c.project.description_html|safe}}
<div class="project-list grid-18">
<b>Projects</b>
<ul>
diff --git a/scripts/migrations/023-migrate-custom-profile-text.py b/scripts/migrations/023-migrate-custom-profile-text.py
new file mode 100644
index 0000000..6ee0617
--- /dev/null
+++ b/scripts/migrations/023-migrate-custom-profile-text.py
@@ -0,0 +1,59 @@
+import logging
+
+from pylons import c
+
+from ming.orm import ThreadLocalORMSession
+
+from allura import model as M
+from forgewiki import model as WM
+from forgewiki.wiki_main import ForgeWikiApp
+
+log = logging.getLogger(__name__)
+
+default_description = u'You can edit this description in the admin page'
+
+default_personal_project_tmpl = ("This is the personal project of %s."
+ " This project is created automatically during user registration"
+ " as an easy place to store personal data that doesn't need its own"
+ " project such as cloned repositories.\n%s")
+
+def main():
+ for p in M.Project.query.find().all():
+ user = p.private_project_of()
+ if not user:
+ continue
+
+ app = p.app_instance('wiki')
+ if app is None:
+ p.install_app('wiki')
+
+ c.app = app
+ c.project = p
+ c.user = user
+
+ page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
+ if page is None:
+ c.app.install(p)
+ page = WM.Page.query.get(app_config_id=c.app.config._id, title='Home')
+ if page is None:
+ log.info("Can't add page for %s home project" % user.username)
+ continue
+
+ description = p.description
+ if description is None or description == "":
+ description = default_description
+
+ if "This is the personal project of" in page.text:
+ if description not in page.text:
+ page.text = "%s\n%s" % (page.text, description)
+ elif "This is the default page" in page.text:
+ page.text = default_personal_project_tmpl % (user.username, description)
+ else:
+ pass
+
+ log.info("Update wiki home page text for %s" % user.username)
+
+ ThreadLocalORMSession.flush_all()
+
+if __name__ == '__main__':
+ main()