Add a page to aid Aaron in user creation.
This commit is contained in:
parent
c3ecb485ae
commit
0d2560fa55
@ -6,6 +6,10 @@
|
||||
from archweb_dev.main.models import Package, Todolist
|
||||
from archweb_dev.main.models import Arch, Repo
|
||||
from archweb_dev.main.models import UserProfile, News
|
||||
import random
|
||||
from string import letters, digits
|
||||
pwletters = letters + digits
|
||||
|
||||
|
||||
def index(request):
|
||||
'''the Developer dashboard'''
|
||||
@ -68,5 +72,52 @@ def siteindex(request):
|
||||
RequestContext(request,
|
||||
{'news_updates': news, 'pkg_updates': pkgs, 'repos': repos}))
|
||||
|
||||
# vim: set ts=4 sw=4 et:
|
||||
class NewUserForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = UserProfile
|
||||
exclude = ('picture', 'user')
|
||||
username = forms.CharField(max_length=30)
|
||||
email = forms.EmailField()
|
||||
first_name = forms.CharField(required=False)
|
||||
last_name = forms.CharField(required=False)
|
||||
|
||||
def save(self):
|
||||
profile = forms.ModelForm.save(self, False)
|
||||
pw = ''.join([random.choice(pwletters) for i in xrange(8)])
|
||||
user = User.objects.create(username=self.cleaned_data['username'],
|
||||
email=self.cleaned_data['email'], password=pw)
|
||||
user.first_name = self.cleaned_data['first_name']
|
||||
user.last_name = self.cleaned_data['last_name']
|
||||
user.save()
|
||||
profile.user = user
|
||||
profile.save()
|
||||
|
||||
send_mail("Your new archweb account",
|
||||
"""You can now log into:
|
||||
http://dev.archlinux.org/
|
||||
with these login details:
|
||||
Username: %s
|
||||
Password: %s""" % (user.username, pw),
|
||||
'Arch Website Notification <nobody@archlinux.org>',
|
||||
[user.email],
|
||||
fail_silently=False)
|
||||
|
||||
def new_user_form(request):
|
||||
if not request.user.is_superuser:
|
||||
return HttpResponseRedirect('/login/')
|
||||
|
||||
if request.POST:
|
||||
form = NewUserForm(request.POST)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return HttpResponseRedirect('/admin/')
|
||||
else:
|
||||
form = NewUserForm()
|
||||
return render_to_response('general_form.html', RequestContext(
|
||||
request, {'description': '''A new user will be created with the
|
||||
following properties in their profile. A random password will be
|
||||
generated and the user will be e-mailed with their account details
|
||||
n plaintext.''',
|
||||
'form': form, 'title': 'Create User', 'submit_text': 'Create User'}))
|
||||
|
||||
# vim: set ts=4 sw=4 et:
|
||||
|
@ -38,8 +38,8 @@
|
||||
|
||||
# List of callables that know how to import templates from various sources.
|
||||
TEMPLATE_LOADERS = (
|
||||
'django.template.loaders.eggs.load_template_source',
|
||||
'django.template.loaders.filesystem.load_template_source',
|
||||
'django.template.loaders.eggs.load_template_source',
|
||||
'django.template.loaders.app_directories.load_template_source',
|
||||
)
|
||||
|
||||
|
90
templates/admin/index.html
Normal file
90
templates/admin/index.html
Normal file
@ -0,0 +1,90 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/dashboard.css" />{% endblock %}
|
||||
|
||||
{% block coltype %}colMS{% endblock %}
|
||||
|
||||
{% block bodyclass %}dashboard{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
pppppppp
|
||||
<div id="content-main">
|
||||
<div class="module">
|
||||
<table>
|
||||
<caption>Custom Admin Pages</caption>
|
||||
<tr>
|
||||
<th scope="row"><a href="/devel/newuser/">Create New User</a></th>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{% if app_list %}
|
||||
{% for app in app_list %}
|
||||
<div class="module">
|
||||
<table summary="{% blocktrans with app.name as name %}Models available in the {{ name }} application.{% endblocktrans %}">
|
||||
<caption><a href="{{ app.app_url }}" class="section">{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}</a></caption>
|
||||
{% for model in app.models %}
|
||||
<tr>
|
||||
{% if model.perms.change %}
|
||||
<th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
|
||||
{% else %}
|
||||
<th scope="row">{{ model.name }}</th>
|
||||
{% endif %}
|
||||
|
||||
{% if model.perms.add %}
|
||||
<td><a href="{{ model.admin_url }}add/" class="addlink">{% trans 'Add' %}</a></td>
|
||||
{% else %}
|
||||
<td> </td>
|
||||
{% endif %}
|
||||
|
||||
{% if model.perms.change %}
|
||||
<td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
|
||||
{% else %}
|
||||
<td> </td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>{% trans "You don't have permission to edit anything." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
<div id="content-related">
|
||||
<div class="module" id="recent-actions-module">
|
||||
<h2>{% trans 'Recent Actions' %}</h2>
|
||||
<h3>{% trans 'My Actions' %}</h3>
|
||||
{% load log %}
|
||||
{% get_admin_log 10 as admin_log for_user user %}
|
||||
{% if not admin_log %}
|
||||
<p>{% trans 'None available' %}</p>
|
||||
{% else %}
|
||||
<ul class="actionlist">
|
||||
{% for entry in admin_log %}
|
||||
<li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
|
||||
{% if entry.is_deletion %}
|
||||
{{ entry.object_repr }}
|
||||
{% else %}
|
||||
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
|
||||
{% endif %}
|
||||
<br/>
|
||||
{% if entry.content_type %}
|
||||
<span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span>
|
||||
{% else %}
|
||||
<span class="mini quiet">{% trans 'Unknown content' %}</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
@ -3,6 +3,7 @@
|
||||
{% block content %}
|
||||
<div class="greybox">
|
||||
<h2 class="title">{{title}}</h2>
|
||||
{% if description %}{{description}}{% endif %}
|
||||
<form method="post" action=".">
|
||||
<table>
|
||||
{% for field in form %}
|
||||
|
4
urls.py
4
urls.py
@ -46,6 +46,8 @@
|
||||
(r'^devel/profile/$', 'archweb_dev.devel.views.change_profile'),
|
||||
(r'^$', 'archweb_dev.devel.views.siteindex'),
|
||||
|
||||
(r'^devel/newuser/$', 'archweb_dev.devel.views.new_user_form'),
|
||||
|
||||
# Authentication / Admin
|
||||
(r'^login/$', 'django.contrib.auth.views.login', {
|
||||
'template_name': 'registration/login.html'}),
|
||||
@ -55,7 +57,7 @@
|
||||
'template_name': 'registration/logout.html'}),
|
||||
(r'^accounts/logout/$', 'django.contrib.auth.views.logout', {
|
||||
'template_name': 'registration/logout.html'}),
|
||||
(r'^admin/(.*)', admin.site.urls),
|
||||
(r'^admin/(.*)', admin.site.root),
|
||||
)
|
||||
|
||||
if settings.DEBUG == True:
|
||||
|
Loading…
Reference in New Issue
Block a user