diff --git a/mediagoblin/media_types/blog/views.py b/mediagoblin/media_types/blog/views.py
index 5a9498cd..35ed5809 100644
--- a/mediagoblin/media_types/blog/views.py
+++ b/mediagoblin/media_types/blog/views.py
@@ -14,15 +14,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
+import logging
+
+_log = logging.getLogger(__name__)
+
from datetime import datetime
from werkzeug.exceptions import Forbidden
-from mediagoblin import messages
from mediagoblin import mg_globals
from mediagoblin.media_types.blog import forms as blog_forms
-from mediagoblin.messages import add_message, SUCCESS
+from mediagoblin.media_types.blog.models import Blog
+from mediagoblin.messages import add_message, SUCCESS, ERROR
#from mediagoblin.edit.lib import may_edit_media
from mediagoblin.decorators import (require_active_login, active_user_from_url,
get_media_entry_by_id, user_may_alter_collection,
@@ -35,96 +39,69 @@ from mediagoblin.tools.text import (
convert_to_tag_list_of_dicts, media_tags_as_string)
from mediagoblin.tools.url import slugify
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
-from mediagoblin.db.models import User, Collection
+from mediagoblin.db.models import User, Collection, MediaEntry
+
@require_active_login
-def blog_create(request, media=None):
+def blog_edit(request):
"""
- View to create and edit a blog
+ View for editing the existing blog or automatically
+ creating a new blog if user does not have any yet.
"""
+ url_user = request.matchdict.get('user', None)
+ blog_slug = request.matchdict.get('blog_slug', None)
- blog_form = blog_forms.BlogEditForm(request.form)
+ max_blog_count = 1
+ form = blog_forms.BlogEditForm(request.form)
+ # the blog doesn't exists yet
+ if not blog_slug:
+ if Blog.query.filter_by(author=request.user.id).count()