add profile form
This commit is contained in:
parent
ba1d9e8882
commit
2be6f4e119
3 changed files with 90 additions and 59 deletions
|
@ -4,7 +4,7 @@ from django.forms.widgets import PasswordInput
|
|||
from accounts.models import *
|
||||
|
||||
|
||||
__all__ = ['UserForm', 'UserFormWithoutUsername', 'GroupForm', 'TeamForm']
|
||||
__all__ = ['UserForm', 'UserFormWithoutUsername', 'ProfileForm', 'GroupForm', 'TeamForm']
|
||||
|
||||
|
||||
user_fields=['first_name', 'last_name', 'email']
|
||||
|
@ -13,6 +13,8 @@ UserForm = modelform_factory(User,
|
|||
fields=['username']+user_fields+['is_superuser'])
|
||||
UserFormWithoutUsername = modelform_factory(User,
|
||||
fields=user_fields+['is_superuser'])
|
||||
ProfileForm = modelform_factory(User,
|
||||
fields=user_fields)
|
||||
GroupForm = modelform_factory(Group,
|
||||
fields=['name'])
|
||||
TeamForm = modelform_factory(Team,
|
||||
|
|
|
@ -21,7 +21,14 @@ from accounts.forms import *
|
|||
|
||||
@login_required
|
||||
def profile(request):
|
||||
return render(request, 'accounts/profile.html')
|
||||
form = ProfileForm(request.POST or None, instance=request.user)
|
||||
if request.method == 'POST' and form.is_valid():
|
||||
form.save()
|
||||
messages.success(request, 'Profile updated successfully.')
|
||||
return redirect('profile')
|
||||
return render(request, 'accounts/profile.html', {
|
||||
'form': form,
|
||||
})
|
||||
|
||||
|
||||
#########
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% load django_markdown %}
|
||||
{% load bootstrap3 %}
|
||||
|
||||
{% block profiletab %} class="active"{% endblock %}
|
||||
|
||||
|
@ -10,67 +11,88 @@
|
|||
<h1>Profile</h1>
|
||||
</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item disabled">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3>Your profile</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="post" class="col-md-4" role="form">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">Update</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3>Your groups</h3>
|
||||
</li>
|
||||
{% for group in request.user.groups.all %}
|
||||
<li class="list-group-item">
|
||||
{{ group }}
|
||||
<div class="pull-right">
|
||||
<a href="javascript:alert('Not yet implemented.');" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-log-out"></span> leave
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.groups.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You belong to no groups.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="list-group">
|
||||
{% for group in request.user.groups.all %}
|
||||
<li class="list-group-item">
|
||||
{{ group }}
|
||||
<div class="pull-right">
|
||||
<a href="javascript:alert('Not yet implemented.');" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-log-out"></span> leave
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.groups.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You belong to no groups.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item disabled">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3>Your teams</h3>
|
||||
</li>
|
||||
{% for team in request.user.teams.all %}
|
||||
<li class="list-group-item">
|
||||
{{ team }}
|
||||
<div class="pull-right">
|
||||
<a href="javascript:alert('Not yet implemented.');" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-log-out"></span> leave
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.teams.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You belong to no teams.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="list-group">
|
||||
{% for team in request.user.teams.all %}
|
||||
<li class="list-group-item">
|
||||
{{ team }}
|
||||
<div class="pull-right">
|
||||
<a href="javascript:alert('Not yet implemented.');" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-log-out"></span> leave
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.teams.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You belong to no teams.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item disabled">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3>Projects that you are watching</h3>
|
||||
</li>
|
||||
{% for project in request.user.subscribed_projects.all %}
|
||||
<li class="list-group-item">
|
||||
{{ project }}
|
||||
<div class="pull-right">
|
||||
<a href="{% url 'unsubscribe-project' project.name %}?next={{ request.path }}" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-eye-close"></span> unwatch
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.subscribed_projects.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You are not watching any projects.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="list-group">
|
||||
{% for project in request.user.subscribed_projects.all %}
|
||||
<li class="list-group-item">
|
||||
{{ project }}
|
||||
<div class="pull-right">
|
||||
<a href="{% url 'unsubscribe-project' project.name %}?next={{ request.path }}" class="btn btn-xs btn-danger">
|
||||
<span class="glyphicon glyphicon-eye-close"></span> unwatch
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if not request.user.subscribed_projects.exists %}
|
||||
<li class="list-group-item">
|
||||
<em>You are not watching any projects.</em>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue