<dialog class="popup">
<div class="layer">
...
</div>
<dialog>
document.querySelector('.layer').addEventListener('click', (e) => e.stopPropagation());
document.querySelector('.popup').addEventListener('click', (e) => e.target.close());
def account_view(request):
cart = Cart()
cart_id = cart.get_cart_id(request)
items_in_cart = CartItems.objects.filter(cart_id=cart_id)
# если не опознан, то дуй на страницу регистрирации
if not request.user.is_authenticated:
return HttpResponseRedirect(reverse('registration'))
# если это суперпользователь
if request.user.is_superuser:
template = 'account_admin.html'
# или если это пользователь с галочкой персонал, а так же принадлежащий группе manager
elif request.user.is_staff and request.user.groups.filter(name='manager').exists():
template = 'account_personal_role.html'
# или если это просто пользователь с галочкой персонал
elif request.user.is_staff:
template = 'account_personal.html'
# или если это пользователь принадлежащий группе manager
elif request.user.groups.filter(name='manager').exists():
template = 'account_role.html'
# иначе все остальные (обычные пользователи)
else:
template = 'account.html'
# сортировка выдачи заказов в обратном порядке (от последнего к первому)
list_orders = Order.objects.filter(user=request.user).order_by('-id')
orders = OrderItems.add_order_info(request, list_orders)
context = {
'title': 'Кабинет пользователя',
'orders': orders,
'cart': items_in_cart,
'total_cost': cart_id.total_cost,
}
return render(request, template, context=context)
...
from django.contrib.auth.models import Group
...
def registration_view(request):
# (предотвращаем заход по прямой ссылке)
# если авторизован, то
if request.user.is_authenticated:
return HttpResponseRedirect(reverse('account'))
form = RegistrationForm(request.POST or None)
if form.is_valid():
new_user = form.save(commit=False)
new_user.username = form.cleaned_data['username']
new_user.set_password(form.cleaned_data['password']) # вот из-за этой бяки вся засада была у меня с паролями ЗАПОМНИ!!!!!!
new_user.email = form.cleaned_data['email']
new_user.first_name = form.cleaned_data['first_name']
new_user.last_name = form.cleaned_data['last_name']
new_user.save()
# после собственно регистрации (сохранения нового) пользователя его можно добавить к группам
new_user.groups.add(Group.objects.get(name='clients'))
# new_user.groups.add(Group.objects.get(name='manager')) # и в ещё одну группу работает тоже
login_user = authenticate(request, username=form.cleaned_data['username'], password=form.cleaned_data['password'])
if login_user:
login(request, login_user)
return HttpResponseRedirect(reverse('account'))
context = {
'title': 'Регистрация',
'form': form,
}
return render(request, 'registration.html', context)
Это конечно не питон и не руби, но для плеера я бы посоветовал например https://github.com/rogerwang/node-webkit