Work on profile page
This commit is contained in:
1 parent
ae8543c2cb
commit
0cbddf75b6
8 files changed
+154
-42
No files matched your search
Whitespace-only changes.
@@ -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>
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
@@ -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
@@ -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)),
|
||||
)
|
||||
@@ -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())
|
||||
Reference in new issue
Block a user