Work on profile page

This commit is contained in:
nikolark committed 2013-12-26 02:09:56 +01:00
1 parent ae8543c2cb
commit 0cbddf75b6
8 files changed
+154 -42

No files matched your search

View File
Whitespace-only changes.
+8 -16
View File
@@ -1,34 +1,26 @@
<!doctype html>
<html>
<head>
<title>{{ title }}</title>
<title>{% block title %}Dusken{% endblock %}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css" type="text/css" />
<link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.1/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" href="/static/css/app.css" type="text/css" />
<link rel="stylesheet" href="{{ STATIC_URL }}css/app.css" type="text/css" />
</head>
<body>
<header class="title-header">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Dusken</h1>
</div>
</div>
</div>
</header>
{% block navigation %}
{% include "nav.html" %}
{% endblock %}
<!-- Main content -->
<div class="container">
{% block content %}
{% endblock %}
{% block content %}{% endblock %}
</div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js"></script>
<script src="{{ STATIC_URL }}/js/dusken.js"></script>
<script src="{{ STATIC_URL }}/js/application.js"></script>
<script src="{{ STATIC_URL }}js/dusken.js"></script>
<script src="{{ STATIC_URL }}js/application.js"></script>
</body>
+12
View File
@@ -1,5 +1,17 @@
{% extends "base.html" %}
{% block navigation %}{% endblock %}
{% block content %}
<header class="title-header">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>DUSKEN</h1>
<small>Dårlig Utrusted Studentsystem som Kan Endre Norge</small>
</div>
</div>
</div>
</header>
<div class="container">
<form role="form">
<div class="row">
+31
View File
@@ -0,0 +1,31 @@
<nav class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
{% if user.is_authenticated %}
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% endif %}
<a class="navbar-brand" href="#">Dusken</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
{% if user.is_authenticated %}
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user }} <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{% url "profile" %}"><i class="glyphicon glyphicon-user"></i> Profile</a></li>
<li><a href="{% url "account" %}"><i class="glyphicon glyphicon-user"></i> Account</a></li>
<li class="divider"></li>
<li><a href="{% url "logout" %}"><i class="glyphicon glyphicon-log-out"></i> Logout</a></li>
</ul>
</li>
</ul>
{% endif %}
</div><!-- /.navbar-collapse -->
</nav>
+61 -14
View File
@@ -1,22 +1,69 @@
{% extends "base.html" %}
{% block title %}Dusken - My profile{% endblock %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-12">
<h4>{{user}}</h4>
<ul>
<li>Username: '{{user.username}}'</li>
<li>Email: '{{user.email}}'</li>
</ul>
<h4>Actions</h4>
<ul>
<li><a href="{% url 'members_list' %}">List members</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-md-12">
<a href="{% url 'logout' %}">Logout</a>
<h4>{{me.first_name}} {{me.last_name }}</h4>
<div class="row">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="glyphicon glyphicon-user"></i> Profile</h3>
</div>
<ul class="list-group">
<li class="list-group-item">Name: {{me.first_name}} {{me.last_name}}</li>
<li class="list-group-item">Username: {{me.username}}</li>
<li class="list-group-item">Email: {{me.email}}</li>
</ul>
</div>
{% if user.is_staff %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"> Admin tasks</h3>
</div>
<div class="panel-body">
<ul>
<li><a href="{% url 'members_list' %}">List members</a></li>
<li><a href="/admin/">Django admin</a></li>
</ul>
<div class="">
</div>
</div>
</div>
{% endif %}
</div>
<div class="col-md-6">
<div class="panel {% if me.has_valid_membership %}panel-success{%else%}panel-warning{%endif%}">
<div class="panel-heading">
<h3 class="panel-title">Membership</h3>
</div>
<div class="panel-body">
{% if me.has_valid_membership %}
{% for membership in me.memberships %}
<i class="glyphicon glyphicon-ok"></i> Valid until {{ me.}}
{% endfor %}
{% else %}
Not valid (expired DATE)
{% endif %}
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Your Groups <span class="badge">{{ me.groups|length}}</span></h3>
</div>
{% if not me.groups %}
No groups
{% endif %}
<ul class="list-group">
{% for group in me.groups %}
<li class="list-group-item">{{ group }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -5,7 +5,7 @@
{% block content %}
<div class="row">
<div class="col-md-12">
Du har blitt logget ut, vil du <a href="{% url "home" %}">logge inn</a> igjen?
Du har blitt logget ut, vil du <a href="{% url "login" %}">logge inn</a> igjen?
</div>
</div>
{% endblock %}
+14 -11
View File
@@ -7,18 +7,8 @@ from longerusername.forms import AuthenticationForm
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
urlpatterns += patterns('duskenweb.views',
url(r'^$', 'home', name='home'),
url(r'^profile/$', 'profile', name='profile'),
url(r'^members/$', 'members_list', name='members_list'),
)
# Authentication views
urlpatterns += patterns('django.contrib.auth.views',
urlpatterns = patterns('django.contrib.auth.views',
url(r'^login/$', 'login', {'authentication_form': AuthenticationForm}, name='login'),
url(r'^logout/$', 'logout', name='logout'),
url(r'^password/change/$', # skip entering old password
@@ -33,3 +23,16 @@ urlpatterns += patterns('django.contrib.auth.views',
name='password_reset_confirm'),
url(r'^password/reset/complete/$', 'password_reset_complete', name='password_reset_complete'),
)
urlpatterns += patterns('duskenweb.views',
url(r'^$', 'home', name='home'),
url(r'^profile/$', 'profile', name='profile'),
url(r'^account/$', 'account', name='account'),
url(r'^members/$', 'members_list', name='members_list'),
url(r'^memberships/$', 'memberships_list', name='memberships_list'),
)
urlpatterns += patterns('',
url(r'^admin/', include(admin.site.urls)),
)
+27
View File
@@ -13,6 +13,22 @@ def home(request, template_name='index.html'):
@login_required
def profile(request, template_name='profile.html'):
# TODO put these two lines somewhere else, on authenticate?
if not user_api_conn.is_authenticated() and request.user.duskenaccesstoken:
user_api_conn.set_access_token(request.user.duskenaccesstoken.access_token)
me = user_api_conn.members.me()['objects'][0]
import pprint
pprint.pprint(me)
return render(request, template_name, locals())
@login_required
def account(request, template_name='account.html'):
# TODO put these two lines somewhere else, on authenticate?
if not user_api_conn.is_authenticated() and request.user.duskenaccesstoken:
user_api_conn.set_access_token(request.user.duskenaccesstoken.access_token)
me = user_api_conn.members.me()
return render(request, template_name)
@login_required
@@ -23,3 +39,14 @@ def members_list(request, template_name='members_index.html'):
members_list = user_api_conn.members.get_list()
return render(request, template_name, locals())
@login_required
def memberships_list(request, template_name='memberships_index.html'):
# TODO put these two lines somewhere else, on authenticate?
if not user_api_conn.is_authenticated() and request.user.duskenaccesstoken:
user_api_conn.set_access_token(request.user.duskenaccesstoken.access_token)
# group by year, active, not active
# show graph
memberships_list = user_api_conn.memberships.get_list()
return render(request, template_name, locals())