Merge branch 'master' into newstyles
authorKostas Papadimitriou <kpap@grnet.gr>
Wed, 13 Jun 2012 12:37:17 +0000 (15:37 +0300)
committerKostas Papadimitriou <kpap@grnet.gr>
Wed, 13 Jun 2012 12:37:17 +0000 (15:37 +0300)
Conflicts:
snf-astakos-app/astakos/im/static/im/cloudbar/cloudbar.js
snf-astakos-app/astakos/im/templates/im/base.html
snf-astakos-app/astakos/im/templates/im/login_base.html

1  2 
snf-astakos-app/astakos/im/settings.py
snf-astakos-app/astakos/im/static/im/cloudbar/cloudbar.js
snf-astakos-app/astakos/im/templates/im/account_base.html
snf-astakos-app/astakos/im/templates/im/base.html
snf-astakos-app/astakos/im/templates/im/login_base.html
snf-astakos-app/astakos/im/templates/im/signup.html
snf-astakos-app/astakos/im/views.py

@@@ -51,10 -50,9 +51,10 @@@ $(document).ready(function()
              }
              slink.attr('href', el.url);
              slink.attr('title', el.name);
 -            services.append(slink);
 +            sli.append(slink);
 +            services.append(sli);
-             if (el.id == ACTIVE_MENU) {
+             if (el.id == ACTIVE_MENU || el.name == ACTIVE_MENU) {
 -                slink.addClass("active");
 +                sli.addClass("active");
              }
          });
        });
@@@ -1,5 -1,16 +1,16 @@@
 -{% extends "im/base_two_cols.html" %}
 +{% extends "im/base.html" %}
  
+ {% block extra_messages %}
+     {% if not messages %}
+         {% for msg_type, msg in GLOBAL_MESSAGES.items %}
+             <li class="{{ msg_type }}">{{ msg|safe }}</li>
+         {% endfor %}
+         {% for msg_type, msg in PROFILE_MESSAGES.items %}
+             <li class="{{ msg_type }}">{{ msg|safe }}</li>
+         {% endfor %}
+     {% endif %}
+ {% endblock %}
  {% load filters %}
  
  {% block page.title %}Profile{% endblock %}
@@@ -35,4 -45,3 +46,4 @@@
  </div>
  
  {% endblock %}
-  
++ 
  </head>
  
  <body>
 -    <div class='container'>
 -        <div class='header'>
 -            <div class="mainlogo">
 -                <h1>accounts</h1>
 -            </div>
 -            
 +    <div class="container">
 +          <div class="wrapper">       
-               {% if messages or LOGIN_MESSAGES %}
++              {% if messages or EXTRA_MESSAGES_SET %}
 +              <div class="top-msg active">
 +                  {% block extra_messages %}{% endblock %}
 +                  {% for message in messages %}
 +                  <div{% if message.tags %} 
 +                      class="msg {{ message.tags }}"{% endif %}>
 +                      {{ message|safe }}</div>
 +                  {% endfor %}
 +                  <a href="#" title="close" class="close">X</a>
 +              </div>
 +              {% endif %}
 +              <div class="mainlogo">
 +                      <a href="/im/">
 +                              <img src="{{ IM_STATIC_URL }}images/accounts-logo.png" alt="accounts" />
 +                      </a>
 +              </div>
              {% block page.nav %}
              <div class="navigation">
 -            <ul class="mainnav inline">
 -                {% block page.nav.items %}
 -                {% endblock %}
 -            </ul>
 -            <ul class="mainnav inline subnav">
 -                {% block page.subnav %}{%endblock %}
 -            </ul>
 +                  <ul>
 +                      {% block page.nav.items %}
 +                      {% endblock %}
 +                  </ul>
 +                  <ul>
 +                      {% block page.subnav %}{%endblock %}
 +                  </ul>
              </div>
              {% endblock %}
-                
-               
 -        </div>
 -        {% if messages or EXTRA_MESSAGES_SET %}
 -        <ul class="messages">
 -            {% block extra_messages %}{% endblock %}
 -            {% for message in messages %}
 -            <li{% if message.tags %} 
 -                class="{{ message.tags }}"{% endif %}>
 -                {{ message }}</li>
 -            {% endfor %}
 -        </ul>
 -        {% endif %}
 -        <div class="page">
 -            {% block page.body %}
 -                <div class="maincol full">
 -                    {% block body %}
 -                    {% endblock %}
 -                </div>
 -            {% endblock %}
 +              <div class="content">
 +                  {% block page.body %}
 +                      <div class="full">
 +                          {% block body %}
 +                          {% endblock %}
 +                      </div>
 +                  {% endblock %}
 +              </div>
 +         </div>
 +    </div>
 +    <div class="footer">
 +        <div class="wrapper">
 +              {% include "im/footer.html" %}
          </div>
      </div>
 -    {% include "im/footer.html" %}
 +    
  </body>
  </html>
  {% endblock %}
  
  {% block signup_class %}hidden{% endblock %}
 -{% block page.title %}
 -Login
 -{% endblock %}
 +{% block page.title %}{% endblock %}
  
 -{% block body %}
 -<div class="section">
 -    <img class="pic" src="{{ IM_STATIC_URL }}images/pictures/login_pic.png" />
 -</div>
 -{% comment %}{% include "im/services_description.html" %}{% endcomment %}
 -{% endblock body %}
 +{% block body.left %}
 +      <img class="pic" src="{{ IM_STATIC_URL }}images/porta.png" />
 +      {% comment %}{% include "im/services_description.html" %}{% endcomment %}
 +{% endblock body.left %}
      
 -{% block body.right %}
 -<div class="section">
 -     {% if "local" in im_modules %}
 -        <form action="{% url astakos.im.target.local.login %}" method="post"
 -            class="login innerlabels">{% csrf_token %}
 -            <h2 class="formheader"><span>LOGIN</span></h2>
 -            {% with login_form as form %}
 -            {% include "im/form_render.html" %}
 -            {% endwith %}
 -            <input type="hidden" name="next" value="{{ next }}">
 -            <div class="form-row submit">
 -                <input type="submit" class="submit altcol" value="SUBMIT" />
 -                <a class="extra-link" href="{% url django.contrib.auth.views.password_reset %}">Forgot your password?</a>
 -            </div>
 -        </form>
 -      {% endif %}
 -
 -          <div class="extralogin">
 -              {% for o in im_modules %}
 -              <div>
 -            {% if o != 'local' %}
 -            LOGIN using
 +{% block body.right %} 
 +      {% if "local" in im_modules %}
 +      <form action="{% url astakos.im.target.local.login %}" method="post"class="login innerlabels">{% csrf_token %}
 +                  <h2>LOGIN</h2>
 +                  {% with login_form as form %}
 +                      {% include "im/form_render.html" %}
 +                  {% endwith %}
 +                  <input type="hidden" name="next" value="{{ next }}">
 +                  <div class="form-row submit">
 +                      <a class="extra-link" href="{% url django.contrib.auth.views.password_reset %}">Forgot your password?</a>
 +                      <input type="submit" class="submit altcol" value="SUBMIT" />
 +                      
 +                  </div>
 +      </form>
 +    {% endif %}
 +    <div class="extralogin">
 +         {% for o in im_modules %}
 +      <div>
 +        {% if o != 'local' %}
 +        LOGIN using
-               <a href="/im/login/{{ o }}{% ifnotequal next "" %}&next={{ next|urlencode }}{% endifnotequal %}{% ifnotequal code ""%}{% if next != "" %}&{% else %}?{% endif %}code={{ code }}{% endifnotequal %}"
+             <a href="/im/login/{{ o }}?{% ifnotequal next "" %}&next={{ next|urlencode }}{% endifnotequal %}{% ifnotequal code ""%}{% if next != "" %}&{% else %}?{% endif %}code={{ code }}{% endifnotequal %}"
 -                alt="{{ o|title }}">{{ o }}</a>
 -            {% endif %}
 -            </div>
 -            {% endfor %}
 +            alt="{{ o|title }}">{{ o }}</a>
 +        {% endif %}
          </div>
 -        {% block body.signup %}
 -        {% for o in im_modules %}
 -            {% if o != 'local' %}
 -            <br />
 -            {% endif %}
          {% endfor %}
 -        <div class="bottom">
 -            {% block body.login.signup %}
 -                new to okeanos ? <a href="{% url astakos.im.views.signup %}{% ifnotequal code "" %}?code={{ code|urlencode }}{% endifnotequal %}">CREATE ACCOUNT</a>
 -            {% endblock %}
 -            </div>
 -        </div>
 -        {% endblock %}
      </div>
 -{% endblock %}
 +    {% block body.signup %}
 +          {% for o in im_modules %}
 +              {% if o != 'local' %}
 +             
 +              {% endif %}
 +          {% endfor %}
 +          <div class="bottom">
 +              {% block body.login.signup %}
 +                  new to okeanos ? <a href="{% url astakos.im.views.signup %}{% ifnotequal code "" %}?code={{ code|urlencode }}{% endifnotequal %}">CREATE ACCOUNT</a>
 +              {% endblock %}
 +          </div>
 +      {% endblock body.signup %}
 + 
 +{% endblock body.right%}
@@@ -518,3 -521,52 +521,52 @@@ def approval_terms(request, term_id=Non
  @signed_terms_required
  def change_password(request):
      return password_change(request, post_change_redirect=reverse('astakos.im.views.edit_profile'))
+ @transaction.commit_manually
+ def change_email(request, activation_key=None,
+                  email_template_name='registration/email_change_email.txt',
+                  form_template_name='registration/email_change_form.html',
+                  confirm_template_name='registration/email_change_done.html',
+                  extra_context={}):
+     if activation_key:
+         try:
+             user = EmailChange.objects.change_email(activation_key)
+             if request.user.is_authenticated() and request.user == user:
+                 msg = _('Email changed successfully.')
+                 messages.add_message(request, messages.SUCCESS, msg)
+                 auth_logout(request)
+                 response = prepare_response(request, user)
+                 transaction.commit()
+                 return response
+         except ValueError, e:
+             messages.add_message(request, messages.ERROR, e)
+         return render_response(confirm_template_name,
+                                modified_user = user if 'user' in locals() else None,
+                                context_instance = get_context(request,
+                                                               extra_context))
+     
+     if not request.user.is_authenticated():
+         path = quote(request.get_full_path())
+         url = request.build_absolute_uri(reverse('astakos.im.views.index'))
+         return HttpResponseRedirect(url + '?next=' + path)
+     form = EmailChangeForm(request.POST or None)
+     if request.method == 'POST' and form.is_valid():
+         try:
+             ec = form.save(email_template_name, request)
+         except SendMailError, e:
+             status = messages.ERROR
+             msg = e
+             transaction.rollback()
+         except IntegrityError, e:
+             status = messages.ERROR
+             msg = _('There is already a pending change email request.')
+         else:
+             status = messages.SUCCESS
+             msg = _('Change email request has been registered succefully.\
+                     You are going to receive a verification email in the new address.')
+             transaction.commit()
+         messages.add_message(request, status, msg)
+     return render_response(form_template_name,
+                            form = form,
+                            context_instance = get_context(request,
 -                                                          extra_context))
++                                                          extra_context))