`_ [0]_.
+
+.. [0] This is a shameless plug. Will Kahn-Greene runs Python Miro
+ Community.
+
+If you have questions or need help, find us on the mailing list and on
+IRC.
diff --git a/docs/index.rst b/docs/index.rst
index fb92d139..fc8cc642 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -17,10 +17,9 @@ Table of Contents:
deploymenthowto
hackinghowto
theminghowto
- softwarestack
designdecisions
- workflow
- codedocs
+ vision
+ beardomatic
Indices and tables
diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst
index 6c3a8dfa..a6194dc4 100644
--- a/docs/mediagoblin.rst
+++ b/docs/mediagoblin.rst
@@ -5,12 +5,13 @@
What is GNU MediaGoblin
=======================
-Three years ago, a number of free software luminaries got together at
-the FSF office to answer the question, "What should software freedom
-look like on the participatory web?" Those thinkers included Richard
-Stallman - founder of the free software movement and instigator of the
-GNU project, Evan Prodromou - the driving force behind Status.net, a
-highly sucessful federated micro-blogging service, and FIXME.
+Three years ago (2008), a number of free software luminaries got
+together at the FSF office to answer the question, "What should
+software freedom look like on the participatory web?" Those thinkers
+included Richard Stallman---founder of the free software movement and
+instigator of the GNU project, Evan Prodromou---the driving force
+behind Status.net, a highly sucessful federated micro-blogging
+service, and FIXME.
Since that time Identi.ca and Libre.fm have answered the
freedom-loving web-user's need for micro-blogging and music sharing.
@@ -46,10 +47,12 @@ How can I participate?
See `Get Involved `.
-How is this licensed?
-=====================
+How is GNU MediaGoblin licensed?
+================================
-FIXME - write this once we work out the details
+GNU MediaGoblin software is released under an AGPLv3 license.
+
+See the ``COPYING`` file in the source for details.
Is this an official GNU Project? What does that mean?
diff --git a/docs/softwarestack.rst b/docs/softwarestack.rst
deleted file mode 100644
index 024f0d5d..00000000
--- a/docs/softwarestack.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-=======
- Stack
-=======
-
-The software stack for this project might change over time, but this
-is what we're thinking right now.
-
-There's some explanation of design decisions in the
-:ref:`design-decisions-chapter`.
-
-
-Python
-======
-
-* http://python.org/
-
-The core team does a lot of work in Python and it's the language we're
-most likely to do a project like this in.
-
-
-MongoDB
-=======
-
-* http://www.mongodb.org/
-
-A "document database". Because it's extremely flexible and scales up
-well, but I guess not down well.
-
-
-MongoKit
-========
-
-* http://namlook.github.com/mongokit/
-
-A lightweight ORM for mongodb. Helps us define our structures better,
-does schema validation, schema evolution, and helps make things more
-fun and pythonic.
-
-
-Jinja2
-======
-
-* http://jinja.pocoo.org/docs/
-
-For templating. Pretty much django templates++ but allows us to pass
-arguments into method calls instead of writing custom tags.
-
-
-WTForms
-=======
-
-* http://wtforms.simplecodes.com/
-
-For form handling, validation, abstraction. Almost just like Django's
-templates.
-
-
-WebOb
-=====
-
-* http://pythonpaste.org/webob/
-
-Gives nice request/response objects (also somewhat Django-ish).
-
-
-Paste Deploy and Paste Script
-=============================
-
-* http://pythonpaste.org/deploy/
-* http://pythonpaste.org/script/
-
-This will be the default way of configuring and launching the
-application. Since GNU MediaGoblin will be fairly WSGI minimalist though,
-you can probably use other ways to launch it, though this will be the
-default.
-
-
-Routes
-======
-
-* http://routes.groovie.org/
-
-For URL Routing. It works well enough.
-
-
-JQuery
-======
-
-* http://jquery.com/
-
-For all sorts of things on the JavaScript end of things, for all sorts
-of reasons.
-
-
-Beaker
-======
-
-* http://beaker.groovie.org/
-
-For sessions, because that seems like it's generally considered the
-way to go I guess.
-
-
-Nose
-====
-
-* http://somethingaboutorange.com/mrl/projects/nose/1.0.0/
-
-For unit tests because it makes testing a bit nicer.
-
-
-Celery
-======
-
-* http://celeryproject.org/
-
-For task queueing (resizing images, encoding video, ...).
-
-
-RabbitMQ
-========
-
-* http://www.rabbitmq.com/
-
-For sending tasks to celery, because I guess that's what most people
-do. Might be optional, might also let people use MongoDB for this if
-they want.
diff --git a/docs/workflow.rst b/docs/vision.rst
similarity index 92%
rename from docs/workflow.rst
rename to docs/vision.rst
index b72031de..fad248df 100644
--- a/docs/workflow.rst
+++ b/docs/vision.rst
@@ -1,21 +1,26 @@
-==========================================================================
- Design Document: Workflow, and other structurally significant braindumps
-==========================================================================
+=========================================
+ Design Document: GNU MediaGoblin vision
+=========================================
.. Note::
When we get a wiki, this will get moved there. It's here for now
mostly because we didn't have a better place for it.
+.. Note::
-This document attempts to describe the envisioned workflow of
-mediagoblin, from a structural standpoint. For now, *nothing* in this
+ By the time you read this, it's very likely it'll be out of date.
+
+
+This document attempts to describe the envisioned workflow of GNU
+MediaGoblin, from a structural standpoint. For now, *nothing* in this
document is probably the eventual, final way that things will work.
Eventually as things come to exist, this document will hopefully be
refactored to describe how things *do* work.
This documented on hopes, dreams, rainbows, and unicorns. And it will
-come to fulfillment through a lot of hard work.
+come to fulfillment through a lot of hard work. Your hard work and my
+hard work.
Look and feel
@@ -31,6 +36,7 @@ here.
http://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/
+
User profile mockup
-------------------
diff --git a/mediagoblin/models.py b/mediagoblin/models.py
index 9e0ee8ca..eef59ed4 100644
--- a/mediagoblin/models.py
+++ b/mediagoblin/models.py
@@ -49,7 +49,7 @@ class User(Document):
'created': datetime.datetime.utcnow,
'email_verified': False,
# TODO: shouldn't be active by default, must have email registration
- 'status': 'active'}
+ 'status': u'active'}
def check_login(self, password):
"""
diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html
new file mode 100644
index 00000000..d6fffb8e
--- /dev/null
+++ b/mediagoblin/templates/mediagoblin/root.html
@@ -0,0 +1,39 @@
+{#
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#}
+{% extends "mediagoblin/base.html" %}
+
+{% block mediagoblin_content %}
+ Welcome to GNU MediaGoblin!
+
+ {% if request.user %}
+
+ Submit an item.
+
+
+ {% else %}
+
+ If you have an account, you can
+ Login.
+
+
+ If you don't have an account, please
+ Register.
+
+
+ {% endif %}
+{% endblock %}
diff --git a/mediagoblin/views.py b/mediagoblin/views.py
index 7a3cf098..1081ce29 100644
--- a/mediagoblin/views.py
+++ b/mediagoblin/views.py
@@ -22,7 +22,11 @@ import wtforms
from mediagoblin import models
def root_view(request):
- return Response("This is the root")
+ template = request.template_env.get_template(
+ 'mediagoblin/root.html')
+ return Response(
+ template.render(
+ {'request': request}))
class ImageSubmitForm(wtforms.Form):