Improve launderette, need to finish the click view

This commit is contained in:
Skia
2016-08-01 16:36:16 +02:00
parent ba48adab6d
commit 4d8e7b0875
13 changed files with 237 additions and 24 deletions

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('subscription', '0002_auto_20160718_1805'),
('counter', '0010_auto_20160728_1820'),
]
operations = [
migrations.AddField(
model_name='counter',
name='sellers',
field=models.ManyToManyField(verbose_name='sellers', to='subscription.Subscriber', related_name='counters', blank=True),
),
]

View File

@ -10,6 +10,8 @@ from random import randrange
from club.models import Club
from accounting.models import CurrencyField
from core.models import Group, User
from subscription.models import Subscriber
from subscription.views import get_subscriber
class Customer(models.Model):
"""
@ -94,6 +96,7 @@ class Counter(models.Model):
type = models.CharField(_('subscription type'),
max_length=255,
choices=[('BAR',_('Bar')), ('OFFICE',_('Office')), ('EBOUTIC',_('Eboutic'))])
sellers = models.ManyToManyField(Subscriber, verbose_name=_('sellers'), related_name='counters', blank=True)
edit_groups = models.ManyToManyField(Group, related_name="editable_counters", blank=True)
view_groups = models.ManyToManyField(Group, related_name="viewable_counters", blank=True)
barmen_session = {}
@ -102,8 +105,8 @@ class Counter(models.Model):
verbose_name = _('counter')
def __getattribute__(self, name):
if name == "owner_group":
return Group.objects.filter(name=self.club.unix_name+settings.SITH_BOARD_SUFFIX).first()
if name == "edit_groups":
return Group.objects.filter(name=self.club.unix_name+settings.SITH_BOARD_SUFFIX).all()
return object.__getattribute__(self, name)
def __str__(self):
@ -114,11 +117,14 @@ class Counter(models.Model):
return reverse('eboutic:main')
return reverse('counter:details', kwargs={'counter_id': self.id})
def can_be_edited_by(self, user):
def is_owned_by(self, user):
return user.is_in_group(settings.SITH_GROUPS['counter-admin']['name'])
def can_be_viewed_by(self, user):
return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP)
if self.type == "BAR" or self.type == "EBOUTIC":
return True
sub = get_subscriber(request.user)
return user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) or sub in self.sellers
def add_barman(counter_id, user_id):
"""

View File

@ -16,6 +16,10 @@
</form>
{% endmacro %}
{% block title %}
{{ counter }}
{% endblock %}
{% block content %}
<h3>{% trans %}Counter{% endtrans %}</h3>
<h4>{{ counter }}</h4>

View File

@ -25,7 +25,7 @@
{% endif %}
{% if barmen %}
<p>{% trans %}Enter client code:{% endtrans %}</p>
<form method="post" action="{{ url('counter:details', counter_id=counter.id) }}">
<form method="post" action="">
{% csrf_token %}
{{ form.as_p() }}
<p><input type="submit" value="{% trans %}validate{% endtrans %}" /></p>

View File

@ -322,7 +322,7 @@ class CounterListView(CanViewMixin, ListView):
model = Counter
template_name = 'counter/counter_list.jinja'
class CounterEditView(CanEditMixin, UpdateView):
class CounterEditView(CanEditPropMixin, UpdateView):
"""
Edit a counter's main informations (for the counter's admin)
"""
@ -352,7 +352,7 @@ class CounterDeleteView(CanEditMixin, DeleteView):
# Product management
class ProductTypeListView(CanViewMixin, ListView):
class ProductTypeListView(CanEditPropMixin, ListView):
"""
A list view for the admins
"""
@ -376,7 +376,7 @@ class ProductTypeEditView(CanEditPropMixin, UpdateView):
fields = ['name', 'description', 'icon']
pk_url_kwarg = "type_id"
class ProductListView(CanViewMixin, ListView):
class ProductListView(CanEditPropMixin, ListView):
"""
A list view for the admins
"""