add user in access panel

This commit is contained in:
Laura Klünder 2016-12-25 11:19:11 +01:00
parent 4905f373ec
commit ba4fa985d5
5 changed files with 61 additions and 3 deletions

View file

@ -1,7 +1,7 @@
from django.forms import ModelForm, MultipleChoiceField
from django.utils.translation import ugettext_lazy as _
from c3nav.access.models import AccessToken
from c3nav.access.models import AccessToken, AccessUser
from c3nav.mapdata.models import AreaLocation
@ -47,3 +47,9 @@ class AccessTokenForm(ModelForm):
data = [':full']
data = ';'.join(data)
return data
class AccessUserForm(ModelForm):
class Meta:
model = AccessUser
fields = ['user_url', 'description']

View file

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.4 on 2016-12-25 10:18
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('access', '0004_auto_20161223_2225'),
]
operations = [
migrations.AlterField(
model_name='accessuser',
name='author',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name='creator'),
),
]

View file

@ -31,7 +31,7 @@ class AccessOperator(models.Model):
class AccessUser(models.Model):
user_url = models.CharField(_('access name'), unique=True, max_length=200,
help_text=_('Usually an URL to a profile somewhere'))
author = models.ForeignKey(AccessOperator, on_delete=models.PROTECT, null=True, blank=True,
author = models.ForeignKey(User, on_delete=models.PROTECT, null=True, blank=True,
verbose_name=_('creator'))
description = models.TextField(_('description'), max_length=200, blank=True)
creation_date = models.DateTimeField(_('creation date'), auto_now_add=True)

View file

@ -49,4 +49,22 @@
<li class="next disabled"><a href="#">{% trans 'next' %} »</a></li>
{% endif %}
</ul>
<form method="POST">
<div class="panel panel-default">
<div class="panel-body">
<h4>{% trans 'Add new access user' %}</h4>
<div class="row">
{% csrf_token %}
{% bootstrap_form new_user_form form_group_class='form-group col-md-4' %}
<div class="form-group col-md-4">
<label class="control-label">&nbsp;</label>
<button type="submit" name="create" class="btn btn-primary btn-block btn-sm">{% trans 'Add new User' %}</button>
</div>
</div>
</div>
</div>
</form>
{% endblock %}

View file

@ -9,7 +9,7 @@ from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from c3nav.access.apply import get_nonpublic_packages
from c3nav.access.forms import AccessTokenForm
from c3nav.access.forms import AccessTokenForm, AccessUserForm
from c3nav.access.models import AccessToken, AccessUser
from c3nav.editor.hosters import get_hoster_for_package
@ -111,8 +111,20 @@ def user_list(request, page=1):
except EmptyPage:
return redirect('access.users')
if request.method == 'POST':
new_user_form = AccessUserForm(data=request.POST)
if new_user_form.is_valid():
user = new_user_form.instance
user.author = request.user
user.save()
return redirect('access.user', pk=user.id)
else:
new_user_form = AccessUserForm()
return render(request, 'access/users.html', {
'users': users,
'new_user_form': new_user_form,
})