Merge branch 'aureplop/clean_scroll' into 'master'

Misc UI

Closes #90 and #115

See merge request !225
This commit is contained in:
Martin Pepin 2017-05-25 23:03:40 +02:00
commit b13e992a30
53 changed files with 1636 additions and 1614 deletions

View file

@ -8,7 +8,7 @@ from django.core.exceptions import ValidationError
from django.core.validators import MinLengthValidator from django.core.validators import MinLengthValidator
from django.contrib.auth.models import User, Group, Permission from django.contrib.auth.models import User, Group, Permission
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.forms import modelformset_factory from django.forms import modelformset_factory, widgets
from django.utils import timezone from django.utils import timezone
from djconfig.forms import ConfigForm from djconfig.forms import ConfigForm
@ -151,10 +151,24 @@ class UserGroupForm(forms.ModelForm):
fields = ['groups'] fields = ['groups']
class KFetPermissionsField(forms.ModelMultipleChoiceField):
def __init__(self, *args, **kwargs):
queryset = Permission.objects.filter(
content_type__in=ContentType.objects.filter(app_label="kfet"),
)
super().__init__(
queryset=queryset,
widget=widgets.CheckboxSelectMultiple,
*args, **kwargs
)
def label_from_instance(self, obj):
return obj.name
class GroupForm(forms.ModelForm): class GroupForm(forms.ModelForm):
permissions = forms.ModelMultipleChoiceField( permissions = KFetPermissionsField()
queryset= Permission.objects.filter(content_type__in=
ContentType.objects.filter(app_label='kfet')))
def clean_name(self): def clean_name(self):
name = self.cleaned_data['name'] name = self.cleaned_data['name']
@ -525,11 +539,7 @@ class OrderArticleForm(forms.Form):
self.category = kwargs['initial']['category'] self.category = kwargs['initial']['category']
self.category_name = kwargs['initial']['category__name'] self.category_name = kwargs['initial']['category__name']
self.box_capacity = kwargs['initial']['box_capacity'] self.box_capacity = kwargs['initial']['box_capacity']
self.v_s1 = kwargs['initial']['v_s1'] self.v_all = kwargs['initial']['v_all']
self.v_s2 = kwargs['initial']['v_s2']
self.v_s3 = kwargs['initial']['v_s3']
self.v_s4 = kwargs['initial']['v_s4']
self.v_s5 = kwargs['initial']['v_s5']
self.v_moy = kwargs['initial']['v_moy'] self.v_moy = kwargs['initial']['v_moy']
self.v_et = kwargs['initial']['v_et'] self.v_et = kwargs['initial']['v_et']
self.v_prev = kwargs['initial']['v_prev'] self.v_prev = kwargs['initial']['v_prev']

View file

@ -1,16 +1,18 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import *
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.signals import user_logged_in from django.contrib.auth.signals import user_logged_in
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.dispatch import receiver from django.dispatch import receiver
@receiver(user_logged_in) @receiver(user_logged_in)
def messages_on_login(sender, request, user, **kwargs): def messages_on_login(sender, request, user, **kwargs):
if (not user.username == 'kfet_genericteam' if (not user.username == 'kfet_genericteam' and
and user.has_perm('kfet.is_team')): user.has_perm('kfet.is_team') and
messages.info(request, '<a href="%s">Connexion en utilisateur partagé ?</a>' % reverse('kfet.login.genericteam'), extra_tags='safe') 'k-fet' in request.GET.get('next', '')):
messages.info(
request,
('<a href="{}" target="_blank">Connexion en utilisateur partagé ?</a>'
.format(reverse('kfet.login.genericteam'))),
extra_tags='safe')

View file

@ -9,17 +9,20 @@
#history .day { #history .day {
height:40px; height:40px;
line-height:40px; line-height:40px;
background-color:#c8102e; background-color:rgba(200,16,46,0.9);
color:#fff; color:#fff;
padding-left:20px; padding-left:20px;
font-size:16px; font-size:16px;
font-weight:bold; font-weight:bold;
position:sticky;
top:50px;
z-index:10;
} }
#history .opegroup { #history .opegroup {
height:30px; height:30px;
line-height:30px; line-height:30px;
background-color:rgba(200,16,46,0.85); background-color:rgba(200,16,46,0.75);
color:#fff; color:#fff;
font-weight:bold; font-weight:bold;
padding-left:20px; padding-left:20px;

View file

@ -33,10 +33,8 @@ textarea {
.table { .table {
margin-bottom:0; margin-bottom:0;
border-bottom:1px solid #ddd; border-bottom:1px solid #ddd;
}
.table {
width:100%; width:100%;
background-color: #FFF;
} }
.table td { .table td {
@ -70,6 +68,16 @@ textarea {
padding:8px 30px; padding:8px 30px;
} }
.table-responsive {
border: 0;
margin-bottom: 0;
}
.btn {
transition: background-color, color;
transition-duration: 0.15s;
}
.btn, .btn-lg, .btn-group-lg>.btn { .btn, .btn-lg, .btn-group-lg>.btn {
border-radius:0; border-radius:0;
} }
@ -81,19 +89,30 @@ textarea {
border:0; border:0;
} }
.btn-primary:hover, .btn-primary.focus, .btn-primary:focus { .btn-primary:hover,
background-color:#000; .btn-primary.focus, .btn-primary:focus,
.btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover,
.btn-primary:active.focus, .btn-primary:active:focus, .btn-primary:active:hover,
.nav-pills>li.active>a, .nav-pills>li.active>a:focus, .nav-pills>li.active>a:hover {
outline: 0;
background-color:rgba(200,16,46,1);
color:#FFF; color:#FFF;
} }
.buttons .nav-pills > li > a { .btn-primary[disabled]:hover,
border-radius:0; .btn-primary[disabled]:focus {
border:1px solid rgba(200,16,46,0.9); background-color: #000;
color: #666;
} }
.buttons .nav-pills > li.active > a { .nav-pills>li>a {
background-color:rgba(200,16,46,0.9); border-radius:0;
background-clip:padding-box; }
.nav-pills>li>a:focus, .nav-pills>li>a:hover {
outline: 0;
background-color:rgba(200,16,46,1);
color:#FFF;
} }
.row-page-header { .row-page-header {
@ -114,26 +133,17 @@ textarea {
padding: 0 !important; padding: 0 !important;
} }
.panel-md-margin{
background-color: white;
overflow:hidden;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 15px;
padding-top: 1px;
}
@media (min-width: 992px) {
.panel-md-margin{
margin:8px;
background-color: white;
}
}
.col-content-left, .col-content-right { .col-content-left, .col-content-right {
padding:0; padding:0;
} }
@media (min-width: 768px) {
.col-content-left {
position: sticky;
top:50px;
}
}
.content-left-top { .content-left-top {
background:#fff; background:#fff;
padding:10px 30px; padding:10px 30px;
@ -147,6 +157,14 @@ textarea {
display:block; display:block;
} }
.content-left .buttons ul.nav-pills {
margin-bottom:5px;
}
.content-left .buttons ul.nav-pills li {
margin:0 0 -5px;
}
.content-left-top.frozen-account { .content-left-top.frozen-account {
background:#000FBA; background:#000FBA;
color:#fff; color:#fff;
@ -179,25 +197,22 @@ textarea {
text-align:center; text-align:center;
} }
.content-right { @media (min-width: 768px) {
margin:0 15px; .content-right {
margin: 15px;
}
} }
.content-right-block { .content-right-block {
padding-bottom:5px;
position:relative; position:relative;
} }
.content-right-block:last-child { .content-right-block > *:not(.buttons-title) {
padding-bottom:15px; background: #fff;
} }
.content-right-block > div:not(.buttons-title) { .content-right-block > h2 {
background:#fff; background: transparent !important;
}
.content-right-block-transparent > div:not(.buttons-title) {
background-color: transparent;
} }
.content-right-block .buttons-title { .content-right-block .buttons-title {
@ -219,9 +234,8 @@ textarea {
.content-right-block h3 { .content-right-block h3 {
border-bottom: 1px solid #c8102e; border-bottom: 1px solid #c8102e;
margin: 20px 15px 15px; margin: 0px 15px 15px;
padding-bottom: 10px; padding: 20px 20px 10px;
padding-left: 20px;
font-size:25px; font-size:25px;
} }
@ -229,20 +243,34 @@ textarea {
* Pages tableaux seuls * Pages tableaux seuls
*/ */
.content-center > div { .content-center > *:not(.content-right-block) {
background:#fff; background: #fff;
}
@media (min-width: 992px) {
.content-center {
margin: 15px 0;
}
} }
.content-center tbody tr:not(.section) td { .content-center tbody tr:not(.section) td {
padding:0px 5px !important; padding:0px 5px;
} }
.content-center .table .form-control { .table .form-control {
padding: 1px 12px ; padding: 1px 12px ;
height:28px; height:28px;
margin:3px 0px; margin:3px 0px;
} }
.content-center .auth-form {
.table-condensed input.form-control {
margin: 0 !important;
border-top: 0;
border-bottom: 0;
border-radius: 0;
}
.content-center .auth-form {
margin:15px; margin:15px;
} }
@ -250,15 +278,12 @@ textarea {
* Pages formulaires seuls * Pages formulaires seuls
*/ */
.form-only .content-form { .content-form {
margin:15px; background-color: #fff;
padding: 15px;
background:#fff;
padding:15px;
} }
.form-only .account_create #id_trigramme { .account_create #id_trigramme {
display:block; display:block;
width:200px; width:200px;
height:80px; height:80px;
@ -324,6 +349,10 @@ textarea {
* Messages * Messages
*/ */
.messages {
margin: 0;
}
.messages .alert { .messages .alert {
padding:10px 15px; padding:10px 15px;
margin:0; margin:0;
@ -561,12 +590,12 @@ thead .tooltip {
} }
} }
.help-block {
padding-top: 15px;
}
/* Inventaires */ /* Inventaires */
#inventoryform input[type=number] {
text-align: center;
}
.inventory_modified { .inventory_modified {
background:rgba(236,100,0,0.15); background:rgba(236,100,0,0.15);
} }
@ -577,5 +606,51 @@ thead .tooltip {
} }
.inventory_update { .inventory_update {
display:none; display: none;
width: 50px;
margin: 0 auto;
}
/* Multiple select customizations */
.ms-choice {
height: 34px !important;
line-height: 34px !important;
border: 1px solid #ccc !important;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075) !important;
}
.ms-choice > div {
top: 4px !important;
}
/* Checkbox select multiple */
.checkbox-select-multiple label {
font-weight: normal;
margin-bottom: 0;
}
/* Statement creation */
.statement-create-summary table {
margin: 0 auto;
}
.statement-create-summary tr td {
text-align: right;
}
.statement-create-summary tr td:first-child {
padding-right: 15px;
font-weight: bold;
}
.statement-create-summary tr td:last-child {
width: 80px;
}
#detail_taken table td,
#detail_balance table td {
padding: 0;
} }

View file

@ -143,7 +143,7 @@ input[type=number]::-webkit-outer-spin-button {
height:50px; height:50px;
padding:0 15px; padding:0 15px;
background:#c8102e; background:rgba(200,16,46,0.9);
color:#fff; color:#fff;
font-weight:bold; font-weight:bold;
@ -232,16 +232,21 @@ input[type=number]::-webkit-outer-spin-button {
float:left; float:left;
background:#c8102e; background: rgba(200,16,46,0.9);
color:#FFF; color:#FFF;
font-size:18px; font-size:18px;
font-weight:bold; font-weight:bold;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
} }
#special_operations button:focus, #special_operations button:hover { #special_operations button:focus,
#special_operations button:hover {
outline:none; outline:none;
background:#000; background: rgba(200,16,46,1);
color:#fff; color:#fff;
} }
@ -256,15 +261,14 @@ input[type=number]::-webkit-outer-spin-button {
height:100%; height:100%;
float:left; float:left;
border:0; border:0;
border-right:1px solid #c8102e;
border-bottom:1px solid #c8102e;
border-radius:0; border-radius:0;
border-bottom: 1px solid rgba(200,16,46,0.9);
font-size:16px; font-size:16px;
font-weight:bold; font-weight:bold;
} }
#article_selection input+input #article_selection input+span { #article_selection input:first-child {
border-right:0; border-right: 1px dashed rgba(200,16,46,0.9);
} }
#article_autocomplete { #article_autocomplete {
@ -319,7 +323,7 @@ input[type=number]::-webkit-outer-spin-button {
#articles_data table tr.category { #articles_data table tr.category {
height:35px; height:35px;
background-color:#c8102e; background-color:rgba(200,16,46,0.9);
font-size:16px; font-size:16px;
color:#FFF; color:#FFF;
font-weight:bold; font-weight:bold;
@ -423,3 +427,7 @@ input[type=number]::-webkit-outer-spin-button {
.kpsul_middle_right_col { .kpsul_middle_right_col {
overflow:auto; overflow:auto;
} }
.kpsul_middle_right_col #history .day {
top: 0;
}

View file

@ -1,67 +1,88 @@
nav { .navbar {
background:#000; background: #000;
color:#DDD; color: #DDD;
font-family:Oswald; font-family: Oswald;
border: 0;
} }
.navbar-nav > li > .dropdown-menu { .navbar .navbar-brand {
border:0; padding: 3px 25px;
border-radius:0;
} }
.navbar-fixed-top { .navbar .navbar-brand img {
border:0; height: 44px;
} }
nav .navbar-brand { .navbar .navbar-toggle .icon-bar {
padding:3px 25px; background-color: #FFF;
}
nav .navbar-brand img {
height:44px;
}
nav .navbar-toggle .icon-bar {
background-color:#FFF;
}
nav a {
color:#DDD;
} }
.navbar-nav { .navbar-nav {
font-weight:bold; font-weight: bold;
font-size:14px; font-size: 14px;
text-transform:uppercase; text-transform: uppercase;
margin: 0 -15px;
} }
.nav>li>a:focus, .nav>li>a:hover { @media (min-width: 768px) {
background-color:#C8102E;
color:#FFF;
}
.nav .open>a, .nav .open>a:focus, .nav .open>a:hover {
background-color:#C8102E;
}
.dropdown-menu {
padding:0;
}
.dropdown-menu>li>a {
padding:8px 20px;
}
.dropdown-menu .divider {
margin:0;
}
@media (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
background-color:#FFF;
}
.navbar-nav { .navbar-nav {
margin:0 -15px; margin: 0px;
}
.navbar-right {
margin-right: -15px;
}
}
.navbar-nav a {
transition: background-color, box-shadow, color;
transition-duration: 0.15s;
}
.navbar-nav > li > a {
color: #FFF;
}
.navbar-nav > li:hover > a,
.navbar-nav > li > a:focus,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #C8102E;
color: #FFF;
box-shadow: inset 0 5px 5px -5px #000;
}
.navbar-nav .dropdown .dropdown-menu {
padding: 0;
border: 0;
border-radius: 0;
background-color: #FFF;
}
.navbar-nav .dropdown .dropdown-menu > li > a {
padding: 8px 20px;
color: #000;
}
.navbar-nav .dropdown .dropdown-menu > li > a:hover,
.navbar-nav .dropdown .dropdown-meny > li > a:focus {
color: #c8102e;
background-color: transparent;
}
.navbar-nav .dropdown .dropdown-menu .divider {
margin: 0;
}
@media (min-width: 768px) {
.navbar-nav .dropdown .dropdown-menu {
display: block;
visibility: hidden;
opacity: 0;
transition: opacity 0.15s;
}
.nav .dropdown:hover .dropdown-menu {
visibility: visible;
opacity: 1;
} }
} }

View file

@ -1,14 +1,4 @@
$(document).ready(function() { $(document).ready(function() {
$(window).scroll(function() {
if ($(window).width() >= 768 && $(this).scrollTop() > 72.6) {
$('.col-content-left').css({'position':'fixed', 'top':'50px'});
$('.col-content-right').addClass('col-sm-offset-4 col-md-offset-3');
} else {
$('.col-content-left').css({'position':'relative', 'top':'0'});
$('.col-content-right').removeClass('col-sm-offset-4 col-md-offset-3');
}
});
if (typeof Cookies !== 'undefined') { if (typeof Cookies !== 'undefined') {
// Retrieving csrf token // Retrieving csrf token
csrftoken = Cookies.get('csrftoken'); csrftoken = Cookies.get('csrftoken');

View file

@ -86,7 +86,10 @@ class Scale(object):
def get_labels(self, label_fmt=None): def get_labels(self, label_fmt=None):
if label_fmt is None: if label_fmt is None:
label_fmt = self.label_fmt label_fmt = self.label_fmt
return [begin.strftime(label_fmt) for begin, end in self] return [
begin.strftime(label_fmt.format(i=i, rev_i=len(self)-i))
for i, (begin, end) in enumerate(self)
]
def chunkify_qs(self, qs, field=None): def chunkify_qs(self, qs, field=None):
if field is None: if field is None:

View file

@ -1,18 +1,15 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_2.html" %}
{% block title %}Liste des comptes{% endblock %} {% block title %}Liste des comptes{% endblock %}
{% block content-header-title %}Comptes{% endblock %} {% block header-title %}Comptes{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ accounts|length|add:-1 }}</div> <div class="line line-big">{{ accounts|length|add:-1 }}</div>
<div class="line line-bigsub">compte{{ accounts|length|add:-1|pluralize }}</div> <div class="line line-bigsub">compte{{ accounts|length|add:-1|pluralize }}</div>
</div> </div>
<div class="buttons"> <div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.account.create' %}">Créer un compte</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.account.create' %}">Créer un compte</a>
{% if perms.kfet.manage_perms %} {% if perms.kfet.manage_perms %}
<a class="btn btn-primary btn-lg" href="{% url 'kfet.account.group' %}">Permissions</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.account.group' %}">Permissions</a>
@ -20,13 +17,13 @@
{% if perms.kfet.view_negs %} {% if perms.kfet.view_negs %}
<a class="btn btn-primary btn-lg" href="{% url 'kfet.account.negative' %}">Négatifs</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.account.negative' %}">Négatifs</a>
{% endif %} {% endif %}
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des comptes</h2> <h2>Liste des comptes</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -52,7 +49,7 @@
<td>{{ account.trigramme }}</td> <td>{{ account.trigramme }}</td>
<td>{{ account.name }}</td> <td>{{ account.name }}</td>
<td class="text-right">{{ account.balance }}€</td> <td class="text-right">{{ account.balance }}€</td>
<td>{{ account.is_cof }}</td> <td>{{ account.is_cof|yesno:"Oui,Non" }}</td>
<td>{{ account.departement }}</td> <td>{{ account.departement }}</td>
<td>{{ account.promo|default_if_none:'' }}</td> <td>{{ account.promo|default_if_none:'' }}</td>
</tr> </tr>
@ -60,9 +57,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,22 +1,18 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_1.html" %}
{% load staticfiles %} {% load staticfiles %}
{% block title %}Nouveau compte{% endblock %} {% block title %}Nouveau compte{% endblock %}
{% block header-title %}Création d'un compte{% endblock %}
{% block extra_head %} {% block extra_head %}
<script src="{% static "autocomplete_light/autocomplete.js" %}" type="text/javascript"></script> <script src="{% static "autocomplete_light/autocomplete.js" %}" type="text/javascript"></script>
{% endblock %} {% endblock %}
{% block content-header-title %}Création d'un compte{% endblock %} {% block main-class %}content-form{% endblock %}
{% block content %} {% block main-content %}
{% include 'kfet/base_messages.html' %} <form action="" method="post" class="account_create">
<div class="row form-only">
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form action="{% url "kfet.account.create" %}" method="post" class="account_create">
{% csrf_token %} {% csrf_token %}
<div> <div>
{{ trigramme_form.trigramme.errors }} {{ trigramme_form.trigramme.errors }}
@ -36,10 +32,8 @@
{% include 'kfet/form_authentication_snippet.html' %} {% include 'kfet/form_authentication_snippet.html' %}
{% endif %} {% endif %}
</div> </div>
</form> </form>
</div>
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
// Affichage des résultats d'autocomplétion // Affichage des résultats d'autocomplétion

View file

@ -2,21 +2,17 @@
{% load staticfiles %} {% load staticfiles %}
{% block title %}Nouveau compte{% endblock %} {% block title %}Nouveau compte{% endblock %}
{% block header-title %}Création d'un compte{% endblock %}
{% block extra_head %} {% block extra_head %}
<script src="{% static "autocomplete_light/autocomplete.js" %}" type="text/javascript"></script> <script src="{% static "autocomplete_light/autocomplete.js" %}" type="text/javascript"></script>
{% endblock %} {% endblock %}
{% block content-header-title %}Création d'un compte{% endblock %} {% block main-class %}content-form{% endblock %}
{% block content %} {% block main-content %}
{% include 'kfet/base_messages.html' %} <form action="" method="post" class="account_create">
<div class="row form-only">
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form action="{% url "kfet.account.create_special" %}" method="post" class="account_create">
{% csrf_token %} {% csrf_token %}
<div> <div>
{{ trigramme_form.trigramme.errors }} {{ trigramme_form.trigramme.errors }}
@ -36,10 +32,7 @@
{% include 'kfet/form_authentication_snippet.html' %} {% include 'kfet/form_authentication_snippet.html' %}
{% endif %} {% endif %}
</div> </div>
</form> </form>
</div>
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
// Affichage des résultats d'autocomplétion // Affichage des résultats d'autocomplétion

View file

@ -1,26 +1,20 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Groupes de comptes{% endblock %} {% block title %}Groupes de comptes{% endblock %}
{% block content-header-title %}Groupes de comptes{% endblock %} {% block header-title %}Groupes de comptes{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="buttons">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top text-center">
<div class="line"></div>
</div>
<div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.account.group.create' %}">Créer un groupe</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.account.group.create' %}">Créer un groupe</a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
{% for group in groups %} {% for group in groups %}
<div class="content-right-block"> <div class="content-right-block">
<div class="buttons-title"> <div class="buttons-title">
<a class="btn btn-primary" href="{% url 'kfet.account.group.update' group.pk %}"> <a class="btn btn-primary" href="{% url 'kfet.account.group.update' group.pk %}">
<span class="glyphicon glyphicon-cog"></span> <span class="glyphicon glyphicon-cog"></span>
@ -30,25 +24,28 @@
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<h3>Permissions</h3> <h3>Permissions</h3>
<ul> {% regroup group.permissions.all by content_type as grouped_perms %}
{% for perm in group.permissions.all %} <ul class="list-unstyled">
<li>{{ perm.name }}</li> {% for perms_group in grouped_perms %}
<li><b>{{ perms_group.grouper|title }}</b>
<ul class="list-unstyled">
{% for perm in perms_group.list %}
<li style="padding-left: 20px">{{ perm.name }}</li>
{% endfor %}
</ul>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<h3>Comptes</h3> <h3>Comptes</h3>
<ul> <ul class="list-unstyled">
{% for user in group.user_set.all %} {% for user in group.user_set.all %}
<li>{{ user.profile.account_kfet }}</li> <li>{{ user.profile.account_kfet }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
</div> </div>
</div>
{% endfor %}
</div>
</div>
</div> </div>
{% endfor %}
{% endblock %} {% endblock %}

View file

@ -1,37 +1,46 @@
{% extends 'kfet/base.html' %} {% extends 'kfet/base_col_1.html' %}
{% load staticfiles %} {% load staticfiles %}
{% load widget_tweaks %}
{% block extra_head %} {% block extra_head %}
<link rel="stylesheet" text="text/css" href="{% static 'kfet/css/multiple-select.css' %}"> <link rel="stylesheet" text="text/css" href="{% static 'kfet/css/multiple-select.css' %}">
<script src="{% static 'kfet/js/multiple-select.js' %}"></script> <script src="{% static 'kfet/js/multiple-select.js' %}"></script>
{% endblock %} {% endblock %}
{% block content %} {% block title %}Permissions - Édition{% endblock %}
{% block header-title %}Modification des permissions{% endblock %}
<form action="" method="post"> {% block main-class %}content-form{% endblock %}
{% block main-content %}
<form action="" method="post" class="form-horizontal">
{% csrf_token %} {% csrf_token %}
<div> <div class="form-group">
{{ form.name.errors }} <label for="{{ form.name.id_for_label }}" class="col-sm-2 control-label">{{ form.name.label }}</label>
{{ form.name.label_tag }} <div class="col-sm-10">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon">K-Fêt</span> <span class="input-group-addon">K-Fêt</span>
{{ form.name }} {{ form.name|add_class:"form-control" }}
</div>
{% if form.name.errors %}<span class="help-block">{{ form.name.errors }}</span>{% endif %}
{% if form.name.help_text %}<span class="help-block">{{ form.name.help_text }}</span>{% endif %}
</div> </div>
</div> </div>
<div> {% include "kfet/form_field_snippet.html" with field=form.permissions %}
{{ form.permissions.errors }} {% if not perms.kfet.manage_perms %}
{{ form.permissions.label_tag }} {% include "kfet/form_authentication_snippet.html" %}
{{ form.permissions }} {% endif %}
</div> {% include "kfet/form_submit_snippet.html" with value="Enregistrer" %}
<input type="submit" value="Enregistrer">
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$("select").multipleSelect({ let $name_input = $("#id_name");
width: 500, let raw_name = $name_input.val();
filter: true, let prefix = "K-Fêt ";
}); if (raw_name.startsWith(prefix))
$name_input.val(raw_name.substring(prefix.length));
}); });
</script> </script>

View file

@ -1,14 +1,11 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Comptes en négatifs{% endblock %} {% block title %}Comptes - Négatifs{% endblock %}
{% block content-header-title %}Comptes - Négatifs{% endblock %} {% block header-title %}Comptes en négatifs{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ negatives|length }}</div> <div class="line line-big">{{ negatives|length }}</div>
<div class="line line-bigsub">compte{{ negatives|length|pluralize }} en négatif</div> <div class="line line-bigsub">compte{{ negatives|length|pluralize }} en négatif</div>
<div class="block"> <div class="block">
@ -19,18 +16,18 @@
<div class="line">Montant: {{ kfet_config.overdraft_amount }}€</div> <div class="line">Montant: {{ kfet_config.overdraft_amount }}€</div>
<div class="line">Pendant: {{ kfet_config.overdraft_duration }}</div> <div class="line">Pendant: {{ kfet_config.overdraft_duration }}</div>
</div> </div>
</div> </div>
{% if perms.kfet.change_settings %} {% if perms.kfet.change_settings %}
<div class="buttons"> <div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.settings' %}">Modifier les valeurs par défaut</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.settings' %}">Modifier les valeurs par défaut</a>
</div> </div>
{% endif %} {% endif %}
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des comptes en négatifs</h2> <h2>Liste des comptes en négatifs</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -72,9 +69,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,4 +1,4 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_2.html" %}
{% load staticfiles %} {% load staticfiles %}
{% load kfet_tags %} {% load kfet_tags %}
{% load l10n %} {% load l10n %}
@ -23,20 +23,12 @@ $(document).ready(function() {
"{% url 'kfet.account.stat.balance.list' trigramme=account.trigramme %}", "{% url 'kfet.account.stat.balance.list' trigramme=account.trigramme %}",
$("#stat_balance") $("#stat_balance")
); );
}); });
</script> </script>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block title %} {% block title %}
{% if account.user == request.user %}
Mon compte
{% else %}
Informations du compte {{ account.trigramme }}
{% endif %}
{% endblock %}
{% block content-header-title %}
{% if account.user == request.user %} {% if account.user == request.user %}
Mon compte Mon compte
{% else %} {% else %}
@ -44,32 +36,33 @@ $(document).ready(function() {
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block header-title %}
{% if account.user == request.user %}
Mon compte
{% else %}
Informations du compte {{ account.trigramme }}
{% endif %}
{% endblock %}
<div class="row"> {% block fixed-content %}
<div class="col-sm-4 col-md-3 col-content-left"> {% include "kfet/left_account.html" %}
<div class="content-left"> {% endblock %}
{% include 'kfet/left_account.html' %}
</div> {% block main-content %}
</div>
<div class="col-sm-8 col-md-9 col-content-right"> <div class="tab-content">
{% include "kfet/base_messages.html" %}
<div class="content-right">
<div class="content-right-block">
<div class="col-sm-12 nopadding">
{% if account.user == request.user %} {% if account.user == request.user %}
<div class='tab-content'> <div class="content-right-block tab-pane fade in active" id="tab_stats">
<div class="tab-pane fade in active" id="tab_stats">
<h2>Statistiques</h2> <h2>Statistiques</h2>
<div class="panel-md-margin"> <div>
<h3>Ma balance</h3> <h3>Ma balance</h3>
<div id="stat_balance"></div> <div id="stat_balance"></div>
<h3>Ma consommation</h3> <h3>Ma consommation</h3>
<div id="stat_last"></div> <div id="stat_last"></div>
</div> </div>
</div> </div><!-- content-right-block -->
<div class="tab-pane fade" id="tab_history">
{% endif %} {% endif %}
<div class="content-right-block tab-pane fade {% if account.user != request.user %}in active{% endif %}" id="tab_history">
{% if addcosts %} {% if addcosts %}
<h2>Gagné des majorations</h2> <h2>Gagné des majorations</h2>
<div> <div>
@ -82,15 +75,8 @@ $(document).ready(function() {
{% endif %} {% endif %}
<h2>Historique</h2> <h2>Historique</h2>
<div id="history"></div> <div id="history"></div>
{% if account.user == request.user %}
</div>
</div><!-- tab-content -->
{% endif %}
</div><!-- col-sm-12 -->
</div><!-- content-right-block --> </div><!-- content-right-block -->
</div><!-- content-right--> </div><!-- tab-content -->
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {

View file

@ -1,6 +1,4 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_1.html" %}
{% load widget_tweaks %}
{% load staticfiles %}
{% block extra_head %} {% block extra_head %}
{{ negative_form.media }} {{ negative_form.media }}
@ -14,7 +12,7 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content-header-title %} {% block header-title %}
{% if account.user == request.user %} {% if account.user == request.user %}
Modification de mes informations Modification de mes informations
{% else %} {% else %}
@ -22,14 +20,11 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include "kfet/base_messages.html" %} {% block main-content %}
<div class="row form-only"> <form action="" method="post" class="form-horizontal">
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form action="{% url 'kfet.account.update' account.trigramme %}" method="post" class="form-horizontal">
{% csrf_token %} {% csrf_token %}
{% include 'kfet/form_snippet.html' with form=user_form %} {% include 'kfet/form_snippet.html' with form=user_form %}
{% include 'kfet/form_snippet.html' with form=cof_form %} {% include 'kfet/form_snippet.html' with form=cof_form %}
@ -41,10 +36,7 @@
{% include 'kfet/form_authentication_snippet.html' %} {% include 'kfet/form_authentication_snippet.html' %}
{% endif %} {% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Mettre à jour" %} {% include 'kfet/form_submit_snippet.html' with value="Mettre à jour" %}
</form> </form>
</div>
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,31 +1,27 @@
{% extends 'kfet/base.html' %} {% extends 'kfet/base_col_2.html' %}
{% block title %}Articles{% endblock %} {% block title %}Articles{% endblock %}
{% block content-header-title %}Articles{% endblock %} {% block header-title %}Articles{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ articles|length }}</div> <div class="line line-big">{{ articles|length }}</div>
<div class="line line-bigsub">article{{ articles|length|pluralize }}</div> <div class="line line-bigsub">article{{ articles|length|pluralize }}</div>
</div> </div>
<div class="buttons"> <div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.article.create' %}"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.article.create' %}">
Nouvel article Nouvel article
</a> </a>
<a class="btn btn-primary btn-lg" href="{% url 'kfet.category' %}"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.category' %}">
Catégories Catégories
</a> </a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right"> <div class="content-right-block">
<div class="content-right-block">
<h2>Liste des articles</h2> <h2>Liste des articles</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -64,9 +60,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,27 +1,12 @@
{% extends 'kfet/base.html' %} {% extends 'kfet/base_col_1.html' %}
{% load widget_tweaks %}
{% load staticfiles %}
{% block title %}Nouvel article{% endblock %} {% block title %}Nouvel article{% endblock %}
{% block content-header-title %}Création d'un article{% endblock %} {% block header-title %}Création d'un article{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include "kfet/base_messages.html" %} {% block main-content %}
<div class="row form-only"> {% include "kfet/base_form.html" with authz=perms.kfet.add_article submit_text="Enregistrer" %}
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form submit="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.add_article %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Enregistrer" %}
</form>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -1,4 +1,4 @@
{% extends 'kfet/base.html' %} {% extends 'kfet/base_col_2.html' %}
{% load staticfiles %} {% load staticfiles %}
{% block extra_head %} {% block extra_head %}
@ -6,15 +6,12 @@
<script type="text/javascript" src="{% static 'kfet/js/statistic.js' %}"></script> <script type="text/javascript" src="{% static 'kfet/js/statistic.js' %}"></script>
{% endblock %} {% endblock %}
{% block title %}Informations sur l'article {{ article }}{% endblock %} {% block title %}Article - {{ article.name }}{% endblock %}
{% block content-header-title %}Article - {{ article.name }}{% endblock %} {% block header-title %}Informations sur l'article {{ article.name }}{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ article.name }}</div> <div class="line line-big">{{ article.name }}</div>
<div class="line line-bigsub">{{ article.category }}</div> <div class="line line-bigsub">{{ article.category }}</div>
<div class="block"> <div class="block">
@ -23,21 +20,21 @@
<div class="line">En vente: {{ article.is_sold | yesno:"Oui,Non" }}</div> <div class="line">En vente: {{ article.is_sold | yesno:"Oui,Non" }}</div>
<div class="line">Affiché: {{ article.hidden | yesno:"Non,Oui" }}</div> <div class="line">Affiché: {{ article.hidden | yesno:"Non,Oui" }}</div>
</div> </div>
</div> </div>
<div class="buttons"> <div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.article.update' article.pk %}"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.article.update' article.pk %}">
Modifier Modifier
</a> </a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Historique</h2> <h2>Historique</h2>
<div class="row"> <div class="row" style="padding-bottom: 15px">
<div class="col-sm-6"> <div class="col-md-6">
<h3>Inventaires</h3> <h3>Inventaires</h3>
<table class="table"> <table class="table">
<thead> <thead>
@ -58,8 +55,9 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-sm-6"> <div class="col-md-6">
<h3>Prix fournisseurs</h3> <h3>Prix fournisseurs</h3>
<div class="table-responsive">
<table class="table"> <table class="table">
<thead> <thead>
<tr> <tr>
@ -83,21 +81,15 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div><!-- /row--> </div><!-- /row-->
</div> </div>
<div class="content-right-block content-right-block-transparent"> <div class="content-right-block">
<h2>Statistiques</h2> <h2>Statistiques</h2>
<div class="row"> <div>
<div class="col-sm-12 nopadding"> <h3>Ventes</h3>
<div class="panel-md-margin">
<h3>Ventes de {{ article.name }}</h3>
<div id="stat_last"></div> <div id="stat_last"></div>
</div> </div>
</div>
</div><!-- /row -->
</div>
</div>
</div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,27 +1,12 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load widget_tweaks %}
{% load staticfiles %}
{% block title %}Édition de l'article {{ article.name }}{% endblock %} {% block title %}{{ article.name }} - Édition{% endblock %}
{% block content-header-title %}Article {{ article.name }} - Édition{% endblock %} {% block header-title %}Édition de l'article {{ article.name }}{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include "kfet/base_messages.html" %} {% block main-content %}
<div class="row form-only"> {% include "kfet/base_form.html" with authz=perms.kfet.change_article submit_text="Mettre à jour"%}
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.change_article %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Mettre à jour" %}
</form>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -30,10 +30,10 @@
<body> <body>
{% include "kfet/base_nav.html" %} {% include "kfet/base_nav.html" %}
<div class="container-fluid"> <div class="container-fluid">
{% block content-header %} {% block header %}
<div class="row row-page-header"> <div class="row row-page-header">
<div class="col-lg-12"> <div class="col-lg-12">
<h1 class="page-header">{% block content-header-title %}{% endblock %}</h1> <h1 class="page-header">{% block header-title %}{% endblock %}</h1>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -0,0 +1,14 @@
{% extends "kfet/base.html" %}
{% block content %}
<div class="row">
<div class="nopadding {% block main-size %}col-md-8 col-md-offset-2{% endblock %}">
{% include "kfet/base_messages.html" %}
<div class="content-center {% block main-class %}{% endblock %}">
{% block main-content %}{% endblock %}
</div>
</div>
<div>
{% endblock %}

View file

@ -0,0 +1,19 @@
{% extends "kfet/base.html" %}
{% block content %}
<div class="row">
<div class="col-content-left {% block fixed-size %}col-sm-4 col-md-3{% endblock %}">
<div class="content-left">
{% block fixed-content %}{% endblock %}
</div>
</div>
<div class="col-content-right {% block main-size %}col-sm-8 col-md-9{% endblock %}">
{% include "kfet/base_messages.html" %}
<div class="content-right">
{% block main-content %}{% endblock %}
</div>
</div>
</div>
{% endblock %}

View file

@ -0,0 +1,10 @@
{% load kfet_tags %}
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
{% include "kfet/form_snippet.html" %}
{% if not authz %}
{% include "kfet/form_authentication_snippet.html" %}
{% endif %}
{% include "kfet/form_submit_snippet.html" with value=submit_text %}
</form>

View file

@ -1,8 +1,8 @@
{% if messages %} {% if messages %}
<div class="row messages"> <div class="row messages">
{% for message in messages %} {% for message in messages %}
<div class="col-sm-12 item"> <div class="col-sm-12 nopadding">
<div class="alert alert-{{ message.level_tag }} alert-dismissible fade in{% if message.tags %} {{ message.tags }}{% endif %}"> <div class="alert alert-{{ message.level_tag }} alert-dismissible fade in {{ message.tags }}">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span></button> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span></button>
{% if 'safe' in message.tags %} {% if 'safe' in message.tags %}
{{ message|safe }} {{ message|safe }}

View file

@ -9,30 +9,34 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="#"> <a class="navbar-brand" href="{% url 'kfet.home' %}">
<img src="{% static 'kfet/img/logo3.png' %}"> <img src="{% static 'kfet/img/logo3.png' %}">
</a> </a>
</div> </div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li><a href="{% url 'kfet.home' %}">Home</a></li> <li class="hidden-xs">
<a href="{% url 'kfet.home' %}">
<span class="glyphicon glyphicon-home"></span>
</a>
</li>
{% if user.profile.account_kfet %}
<li>
<a href="{% url 'kfet.account.read' user.profile.account_kfet.trigramme %}">Mon compte</a>
</li>
{% endif %}
</ul> </ul>
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
{% if user.username == 'kfet_genericteam' %} {% if user.username == 'kfet_genericteam' %}
<li class="navbar-text">Équipe standard</li> <li class="navbar-text">Équipe standard</li>
{% endif %} {% endif %}
{% if user.profile.account_kfet %}
<li>
<a href="{% url 'kfet.account.read' user.profile.account_kfet.trigramme %}">Mes infos</a>
</li>
{% endif %}
{% if perms.kfet.is_team %} {% if perms.kfet.is_team %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="{% url 'kfet.kpsul' %}">K-Psul</a></li> <li><a href="{% url 'kfet.kpsul' %}">K-Psul</a></li>
<li><a href="{% url 'kfet.history' %}">Historique</a></li> <li><a href="{% url 'kfet.history' %}">Historique</a></li>
<li><a href="{% url 'kfet.transfers' %}">Transferts</a></li> <li><a href="{% url 'kfet.transfers' %}">Transferts</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Admin <span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="divider"></li> <li class="divider"></li>
<li><a href="{% url 'kfet.account' %}">Comptes</a></li> <li><a href="{% url 'kfet.account' %}">Comptes</a></li>
<li><a href="{% url 'kfet.checkout' %}">Caisses</a></li> <li><a href="{% url 'kfet.checkout' %}">Caisses</a></li>

View file

@ -1,23 +1,20 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Categories d'articles{% endblock %} {% block title %}Categories d'articles{% endblock %}
{% block content-header-title %}Categories d'articles{% endblock %} {% block header-title %}Categories d'articles{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ categories|length }}</div> <div class="line line-big">{{ categories|length }}</div>
<div class="line line-bigsub">catégorie{{ categories|length|pluralize }}</div> <div class="line line-bigsub">catégorie{{ categories|length|pluralize }}</div>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des catégories</h2> <h2>Liste des catégories</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -45,9 +42,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,25 +1,12 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% block title %}Édition de la catégorie {{ category.name }}{% endblock %} {% block title %}{{ articlecategory.name }} - Édition{% endblock %}
{% block content-header-title %}Catégorie {{ category.name }} - Édition{% endblock %} {% block header-title %}Édition de la catégorie {{ articlecategory.name }}{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include "kfet/base_messages.html" %} {% block main-content %}
<div class="row form-only"> {% include "kfet/base_form.html" with authz=perms.kfet.edit_articlecategory submit_text="Enregistrer"%}
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form action="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.edit_articlecategory %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Enregistrer"%}
<form>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -1,26 +1,23 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_2.html" %}
{% block title %}Liste des caisses{% endblock %} {% block title %}Caisses{% endblock %}
{% block content-header-title %}Caisses{% endblock %} {% block header-title %}Caisses{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top text-center">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top text-center">
<div class="line line-big">{{ checkouts|length }}</div> <div class="line line-big">{{ checkouts|length }}</div>
<div class="line line-bigsub">caisse{{ checkouts|length|pluralize }}</div> <div class="line line-bigsub">caisse{{ checkouts|length|pluralize }}</div>
</div> </div>
<div class="buttons"> <div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.checkout.create' %}">Créer une caisse</a> <a class="btn btn-primary btn-lg" href="{% url 'kfet.checkout.create' %}">Créer une caisse</a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des caisses</h2> <h2>Liste des caisses</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -52,9 +49,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,28 +1,13 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_1.html" %}
{% block extra_head %}{{ form.media }}{% endblock %} {% block extra_head %}{{ form.media }}{% endblock %}
{% block title %}Nouvelle caisse{% endblock %} {% block title %}Nouvelle caisse{% endblock %}
{% block content-header-title %}Création d'une caisse{% endblock %} {% block header-title %}Création d'une caisse{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% block main-content %}
{% include 'kfet/base_messages.html' %} {% include "kfet/base_form.html" with authz=perms.kfet.add_checkout submit_text="Enregistrer" %}
<form action="" method="post">
{% csrf_token %}
{{ form.non_field_errors}}
{% for field in form %}
{{ field.errors }}
{{ field.label_tag }}
<div style="position:relative">{{ field }}</div>
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
{% endfor %}
{% if not perms.kfet.add_checkout %}
<input type="password" name="KFETPASSWORD">
{% endif %}
<input type="submit" value="Enregistrer">
</form>
<script type="text/javascript"> <script type="text/javascript">

View file

@ -1,22 +1,16 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Informations sur la caisse {{ checkout.name }}{% endblock %} {% block title %}Caisse - {{ checkout.name }}{% endblock %}
{% block content-header-title %}Caisse - {{ checkout.name }}{% endblock %} {% block header-title %}Informations sur la caisse {{ checkout.name }}{% endblock %}
{% block content %} {% block fixed-content %}
{% include 'kfet/left_checkout.html' %}
{% endblock %}
<div class="row"> {% block main-content %}
<div class="col-sm-4 col-md-3 col-content-left"> <div class="content-right-block">
<div class="content-left">
{% include 'kfet/left_checkout.html' %}
</div>
</div>
<div class="col-sm-8 col-md-9 col-content-right">
{% include "kfet/base_messages.html" %}
<div class="content-right">
<div class="content-right-block">
<h2>Relevés</h2> <h2>Relevés</h2>
<div> <div class="table-responsive">
{% if not statements %} {% if not statements %}
Pas de relevé Pas de relevé
{% else %} {% else %}
@ -43,9 +37,6 @@
</table> </table>
{% endif %} {% endif %}
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,39 +1,18 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block extra_head %}{{ form.media }}{% endblock %} {% block extra_head %}{{ form.media }}{% endblock %}
{% block title %}Édition de la caisse {{ checkout.name }}{% endblock %} {% block title %}Caisse {{ checkout.name }} - Édition{% endblock %}
{% block content-header-title %}Caisse {{ checkout.name }} - Édition{% endblock %} {% block header-title %}Édition de la caisse {{ checkout.name }}{% endblock %}
{% block content %} {% block fixed-content %}
{% include "kfet/left_checkout.html" %}
{% endblock %}
<div class="row"> {% block main-content %}
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left"> <div class="content-right-block">
{% include 'kfet/left_checkout.html' %} <div style="padding: 15px;">
</div> {% include "kfet/base_form.html" with authz=perms.kfet.change_checkout submit_text="Mettre à jour" %}
</div>
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %}
<div class="content-right">
<div class="content-right-block">
<form action="" method="post">
{% csrf_token %}
{{ form.non_field_errors }}
{% for field in form %}
{{ field.errors }}
{{ field.label_tag }}
<div style="position:relative">{{ field }}</div>
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
{% endfor %}
{% if not perms.kfet.add_checkout %}
<input type="password" name="KFETPASSWORD">
{% endif %}
<input type=submit value="Mettre à jour">
</form>
</div>
</div>
</div> </div>
</div> </div>

View file

@ -1,45 +1,62 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_2.html" %}
{% load l10n %} {% load l10n %}
{% load widget_tweaks %}
{% block title %}Nouveau relevé{% endblock %} {% block title %}Nouveau relevé - {{ checkout.name }}{% endblock %}
{% block content-header-title %}Caisse {{ checkout.name }} - Nouveau relevé{% endblock %} {% block header-title %}Création d'un relevé pour la caisse {{ checkout.name }}{% endblock %}
{% block content %} {% block fixed-content %}
{% include "kfet/left_checkout.html" %}
{% endblock %}
<div class="row"> {% block main-content %}
<div class="col-sm-4 col-md-3 col-content-left"> <form action="" method="post">
<div class="content-left">
{% include 'kfet/left_checkout.html' %}
</div>
</div>
<div class="col-sm-8 col-md-9 col-content-right">
{% include "kfet/base_messages.html" %}
<div class="content-right">
<form action="" method="post">
{% csrf_token %} {% csrf_token %}
<div class="content-right-block"> <div class="content-right-block">
<h2>Général</h2> <h2>Général</h2>
<div> <div class="content-form statement-create-summary">
<label> <table>
Ne pas compter la caisse <tr>
{{ form.not_count }} <td>
</label><br> <label for="{{ form.not_count.id_for_label }}" class="control-label">{{ form.not_count.label }}</label>
Ancienne balance : <span id="balance_old">{{ checkout.balance|unlocalize }}</span><br> </td>
Nouvelle balance : <span id="balance_new">0</span><br> <td>{{ form.not_count }}</td>
Pris : <span id="amount_taken">0</span><br> </tr>
Erreur : <span id="amount_error">0</span><br> <tr>
<td>Ancienne balance</td>
<td>
<span id="balance_old">{{ checkout.balance|unlocalize }}</span>
</td>
</tr>
<tr>
<td>Nouvelle balance</td>
<td><span id="balance_new">0</span></td>
</tr>
<tr>
<td>Pris</td>
<td><span id="amount_taken">0</span></td>
</tr>
<tr>
<td>Erreur</td>
<td><span id="amount_error">0</span></td>
</tr>
</table>
{% if not perms.kfet.add_checkoutstatement %} {% if not perms.kfet.add_checkoutstatement %}
<label for="password">Mot de passe:</label> {% include "kfet/form_authentication_snippet.html" %}
<input type="password" id="password" name="KFETPASSWORD">
{% endif %} {% endif %}
<input type="submit" value="Enregistrer"> <br>
<div class="row text-center">
<input type="submit" value="Enregistrer" class="btn btn-lg btn-primary">
</div>
</div> </div>
</div> </div>
<div class="content-right-block"> <div class="content-right-block">
<h2>Pris</h2> <h2>Pris</h2>
<div id="detail_taken"> <div id="detail_taken">
<table class="table table-bordered"> <div class="table-responsive">
<tr style="font-weight:bold;"> <table class="table table-condensed">
<thead>
<tr>
<td>5€</td> <td>5€</td>
<td>10€</td> <td>10€</td>
<td>20€</td> <td>20€</td>
@ -47,7 +64,9 @@
<td>100€</td> <td>100€</td>
<td>200€</td> <td>200€</td>
<td>500€</td> <td>500€</td>
<tr> </tr>
</thead>
<tbody>
<tr> <tr>
<td><input id="id_taken_5" name="taken_5" data-value="5" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_5" name="taken_5" data-value="5" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_taken_10" name="taken_10" data-value="10" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_10" name="taken_10" data-value="10" min="0" value="0" type="number" class="form-control" required></td>
@ -57,9 +76,13 @@
<td><input id="id_taken_200" name="taken_200" data-value="200" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_200" name="taken_200" data-value="200" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_taken_500" name="taken_500" data-value="500" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_500" name="taken_500" data-value="500" min="0" value="0" type="number" class="form-control" required></td>
</tr> </tr>
</tbody>
</table> </table>
<table class="table table-bordered"> </div>
<tr style="font-weight:bold;"> <div class="table-responsive">
<table class="table table-condensed">
<thead>
<tr>
<td>2€</td> <td>2€</td>
<td>1€</td> <td>1€</td>
<td>0.50€</td> <td>0.50€</td>
@ -68,7 +91,9 @@
<td>0.05€</td> <td>0.05€</td>
<td>0.02€</td> <td>0.02€</td>
<td>0.01€</td> <td>0.01€</td>
<tr> </tr>
</thead>
<tbody>
<tr> <tr>
<td><input id="id_taken_2" name="taken_2" data-value="2" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_2" name="taken_2" data-value="2" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_taken_1" name="taken_1" data-value="1" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_1" name="taken_1" data-value="1" min="0" value="0" type="number" class="form-control" required></td>
@ -79,15 +104,32 @@
<td><input id="id_taken_002" name="taken_002" data-value="0.02" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_002" name="taken_002" data-value="0.02" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_taken_001" name="taken_001" data-value="0.01" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_taken_001" name="taken_001" data-value="0.01" min="0" value="0" type="number" class="form-control" required></td>
</tr> </tr>
</tbody>
</table> </table>
<p style="font-weight:bold"> Chèque:</p> <input id="id_taken_cheque" name="taken_cheque" data-value="1" min="0" step="0.01" value="0" type="number" class="form-control" required> </div>
<div class="table-responsive">
<table class="table table-condensed">
<thead>
<tr><td>Chèques</td></tr>
</thead>
<tbody>
<tr>
<td>
<input id="id_taken_cheque" name="taken_cheque" data-value="1" min="0" step="0.01" value="0" type="number" class="form-control" required>
</td>
</tr>
</tbody>
</table>
</div>
</div> </div>
</div> </div>
<div class="content-right-block"> <div class="content-right-block">
<h2>En caisse</h2> <h2>En caisse</h2>
<div id="detail_balance"> <div id="detail_balance">
<table class="table table-bordered"> <div class="table-responsive">
<tr style="font-weight:bold;"> <table class="table table-condensed">
<thead>
<tr>
<td>5€</td> <td>5€</td>
<td>10€</td> <td>10€</td>
<td>20€</td> <td>20€</td>
@ -95,7 +137,9 @@
<td>100€</td> <td>100€</td>
<td>200€</td> <td>200€</td>
<td>500€</td> <td>500€</td>
<tr> </tr>
</thead>
<tbody>
<tr> <tr>
<td><input id="id_balance_5" name="balance_5" data-value="5" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_5" name="balance_5" data-value="5" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_balance_10" name="balance_10" data-value="10" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_10" name="balance_10" data-value="10" min="0" value="0" type="number" class="form-control" required></td>
@ -105,9 +149,13 @@
<td><input id="id_balance_200" name="balance_200" data-value="200" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_200" name="balance_200" data-value="200" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_balance_500" name="balance_500" data-value="500" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_500" name="balance_500" data-value="500" min="0" value="0" type="number" class="form-control" required></td>
</tr> </tr>
</tbody>
</table> </table>
<table class="table table-bordered"> </div>
<tr style="font-weight:bold;"> <div class="table-responsive">
<table class="table table-condensed">
<thead>
<tr>
<td>2€</td> <td>2€</td>
<td>1€</td> <td>1€</td>
<td>0.50€</td> <td>0.50€</td>
@ -116,7 +164,9 @@
<td>0.05€</td> <td>0.05€</td>
<td>0.02€</td> <td>0.02€</td>
<td>0.01€</td> <td>0.01€</td>
<tr> </tr>
</thead>
<tbody>
<tr> <tr>
<td><input id="id_balance_2" name="balance_2" data-value="2" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_2" name="balance_2" data-value="2" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_balance_1" name="balance_1" data-value="1" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_1" name="balance_1" data-value="1" min="0" value="0" type="number" class="form-control" required></td>
@ -127,13 +177,12 @@
<td><input id="id_balance_002" name="balance_002" data-value="0.02" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_002" name="balance_002" data-value="0.02" min="0" value="0" type="number" class="form-control" required></td>
<td><input id="id_balance_001" name="balance_001" data-value="0.01" min="0" value="0" type="number" class="form-control" required></td> <td><input id="id_balance_001" name="balance_001" data-value="0.01" min="0" value="0" type="number" class="form-control" required></td>
</tr> </tr>
</tbody>
</table> </table>
</div> </div>
</div> </div>
</form>
</div> </div>
</div> </form>
</div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {

View file

@ -1,33 +1,15 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% block title %}Modification d'un relevé{% endblock %} {% block title %}Modification d'un relevé{% endblock %}
{% block content-header-title %} {% block header-title %}
Caisse {{ checkout.name }} - Modification relevé {{ checkoutstatement.at }} Caisse {{ checkout.name }}<br>
Modification du relevé {{ checkoutstatement.at }}
{% endblock %} {% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
<div class="row"> {% block main-content %}
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left"> {% include "kfet/base_form.html" with authz=perms.kfet.change_checkoutstatement submit_text="Enregistrer"%}
{% include 'kfet/left_checkout.html' %}
</div>
</div>
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %}
<div class="content-right form-only">
<div class="content-form">
<form submit="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.change_checkoutstatement %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Enregistrer" %}
</form>
</div>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -3,7 +3,19 @@
<div class="form-group"> <div class="form-group">
<label for="{{ field.id_for_label }}" class="col-sm-2 control-label">{{ field.label }}</label> <label for="{{ field.id_for_label }}" class="col-sm-2 control-label">{{ field.label }}</label>
<div class="col-sm-10"> <div class="col-sm-10">
{% if field|widget_type == "checkboxselectmultiple" %}
<ul class="list-unstyled checkbox-select-multiple">
{% for choice in form.permissions %}
<li class="col-sm-6 col-lg-4">
<label for="{{ choice.id_for_label }}">
{{ choice.tag }} {{ choice.choice_label }}
</label>
</li>
{% endfor %}
</ul>
{% else %}
{{ field|add_class:'form-control' }} {{ field|add_class:'form-control' }}
{% endif %}
{% if field.errors %} {% if field.errors %}
<span class="help-block">{{field.errors}}</span> <span class="help-block">{{field.errors}}</span>
{% endif %} {% endif %}

View file

@ -14,7 +14,6 @@
<script type="text/javascript" src="{% static 'kfet/js/moment-timezone-with-data-2010-2020.js' %}"></script> <script type="text/javascript" src="{% static 'kfet/js/moment-timezone-with-data-2010-2020.js' %}"></script>
<script type="text/javascript" src="{% static 'kfet/js/bootstrap-datetimepicker.min.js' %}"></script> <script type="text/javascript" src="{% static 'kfet/js/bootstrap-datetimepicker.min.js' %}"></script>
<script type="text/javascript" src="{% static 'kfet/js/multiple-select.js' %}"></script> <script type="text/javascript" src="{% static 'kfet/js/multiple-select.js' %}"></script>
<script type="text/javascript" src="{% static 'kfet/js/kfet.js' %}"></script>
<script type="text/javascript" src="{% static 'kfet/js/history.js' %}"></script> <script type="text/javascript" src="{% static 'kfet/js/history.js' %}"></script>
{% endblock %} {% endblock %}
@ -30,7 +29,6 @@
<div class="line line-big" id="nb_opes"></div> <div class="line line-big" id="nb_opes"></div>
<div class="line line-bigsub">opérations</div> <div class="line line-bigsub">opérations</div>
<div class="block"> <div class="block">
<h2>Filtres</h2>
<div class="line" style="position:relative"><b>De</b> <input type="text" id="from_date" class="form-control"></div> <div class="line" style="position:relative"><b>De</b> <input type="text" id="from_date" class="form-control"></div>
<div class="line" style="position:relative"><b>à</b> <input type="text" id="to_date" class="form-control"></div> <div class="line" style="position:relative"><b>à</b> <input type="text" id="to_date" class="form-control"></div>
<div class="line"><b>Caisses</b> {{ filter_form.checkouts }}</div> <div class="line"><b>Caisses</b> {{ filter_form.checkouts }}</div>
@ -130,6 +128,9 @@ $(document).ready(function() {
$("select").multipleSelect({ $("select").multipleSelect({
width: '100%', width: '100%',
filter: true, filter: true,
allSelected: " ",
selectAllText: "Tout-te-s",
countSelected: "# sur %"
}); });
$("input").on('dp.change change', function() { $("input").on('dp.change change', function() {

View file

@ -1,24 +1,19 @@
{% extends "kfet/base.html" %} {% extends "kfet/base_col_1.html" %}
{% load staticfiles %} {% load staticfiles %}
{% load kfet_tags %} {% load kfet_tags %}
{% block title %}Accueil{% endblock %} {% block title %}Accueil{% endblock %}
{% block content-header-title %}Accueil{% endblock %} {% block header %}{% endblock %}
{% block extra_head %} {% block extra_head %}
<link rel="stylesheet" type="text/css" href="{% static 'kfet/css/home.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'kfet/css/home.css' %}">
{% endblock %} {% endblock %}
{% block content %} {% block main-size %}col-md-10 col-md-offset-1{% endblock %}
<div class="row"> {% block main-content %}
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left"> <div class="content-right-block">
</div>
</div>
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %}
<div class="content-right">
<div class="content-right-block">
<h2>Carte</h2> <h2>Carte</h2>
<div class="column-row"> <div class="column-row">
<div class="column-sm-1 column-md-2 column-lg-3"> <div class="column-sm-1 column-md-2 column-lg-3">
@ -58,9 +53,6 @@
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,30 +1,25 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Inventaires{% endblock %} {% block title %}Inventaires{% endblock %}
{% block content-header-title %}Inventaires{% endblock %} {% block header-title %}Inventaires{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="buttons">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
</div>
<div class="buttons">
<a href="{% url 'kfet.inventory.create' %}" class="btn btn-primary btn-lg"> <a href="{% url 'kfet.inventory.create' %}" class="btn btn-primary btn-lg">
Nouveau Nouveau
</a> </a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des inventaires</h2> <h2>Liste des inventaires</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
<thead class="thead-default"> <thead>
<tr> <tr>
<td></td> <td></td>
<td>Date</td> <td>Date</td>
@ -56,9 +51,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,4 +1,4 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load staticfiles %} {% load staticfiles %}
{% load widget_tweaks %} {% load widget_tweaks %}
@ -8,20 +8,20 @@
{% endblock %} {% endblock %}
{% block title %}Nouvel inventaire{% endblock %} {% block title %}Nouvel inventaire{% endblock %}
{% block content-header-title %}Nouvel inventaire{% endblock %} {% block header-title %}Création d'un inventaire{% endblock %}
{% block content %} {% block main-size %}col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2{% endblock %}
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-center">
<div> <form id='inventoryform' action="" method="post">
<form id='inventoryform' action="" method="post"> <div class="table-responsive">
<table class="table text-center"> <table class="table table-condensed text-center">
<thead> <thead>
<tr> <tr>
<td>Article</td> <td>Article</td>
<td>Quantité par caisse</td> <td>Quantité par caisse</td>
<td>Stock Théorique</td> <td>Stock théorique</td>
<td>Caisses en réserve</td> <td>Caisses en réserve</td>
<td>Caisses en arrière</td> <td>Caisses en arrière</td>
<td>Vrac</td> <td>Vrac</td>
@ -41,28 +41,41 @@
{{ form.article }} {{ form.article }}
<td class='name'>{{ form.name }}</td> <td class='name'>{{ form.name }}</td>
<td class='box_capacity'>{{ form.box_capacity }}</td> <td class='box_capacity'>{{ form.box_capacity }}</td>
<td><span class='current_stock'>{{ form.stock_old }}</span><span class='stock_diff'></span></td> <td>
<td class='box_cellar'> <span class='current_stock'>{{ form.stock_old }}</span><span class='stock_diff'></span>
<div class='col-md-2'></div> </td>
<div class='col-md-8'> <td class='box_cellar nopadding'>
<input type='number' class='form-control' step='1'> <input type='number' class='form-control' step='1'>
</td>
<td class='box_bar nopadding'>
<input type='number' class='form-control' step='1'>
</td>
<td class='misc nopadding'>
<input type='number' class='form-control' step='1'>
</td>
<td class='stock_new nopadding'>
{{ form.stock_new | attr:"readonly"| add_class:"form-control" }}
</td>
<td class='finished'>
<div class="inventory_update">
<button type='button' class='btn-sm btn-primary'>MàJ</button>
</div>
<div class="inventory_done">
<input type='checkbox' class='form_control'>
</div> </div>
</td> </td>
<td class='box_bar'>
<div class='col-md-offset-2 col-md-8'><input type='number' class='form-control' step='1'></div>
</td>
<td class='misc'>
<div class='col-md-offset-2 col-md-8'><input type='number' class='form-control' step='1'></div>
</td>
<td class='stock_new'>
<div class='col-md-offset-2 col-md-8'>{{ form.stock_new | attr:"readonly"| add_class:"form-control" }}</div>
<div class='col-md-2 inventory_update'><button type='button' class='btn-sm btn-primary'>MàJ</button></div>
</td>
<td class='finished'><input type='checkbox' class='form_control'></td>
</tr> </tr>
{% endfor %} {% endfor %}
<tr class="section">
<td>Totaux</td>
<td colspan="2"></td>
<td class="total_box_cellar"></td>
<td class="total_box_bar"></td>
<td colspan="3"></td>
</tr>
</tbody> </tbody>
</table> </table>
</div>
{{ formset.management_form }} {{ formset.management_form }}
{% if not perms.kfet.add_inventory %} {% if not perms.kfet.add_inventory %}
<div class='auth-form form-horizontal'> <div class='auth-form form-horizontal'>
@ -71,12 +84,22 @@
{% endif %} {% endif %}
<input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block"> <input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block">
{% csrf_token %} {% csrf_token %}
</form> </form>
</div>
</div>
<script type="text/javascript"> <script type="text/javascript">
function init_total(type) {
update_total(type);
$('.'+type+' input').on('input', () => update_total(type));
}
function update_total(type) {
var total = 0;
$('.'+type+' input').each(function() {
total += +$(this).val();
});
$('.total_'+type).text(total);
}
$(document).ready(function() { $(document).ready(function() {
'use strict'; 'use strict';
@ -106,6 +129,7 @@ $(document).ready(function() {
function update_stock($line, update_count) { function update_stock($line, update_count) {
$line.removeClass('inventory_modified'); $line.removeClass('inventory_modified');
$line.find('.inventory_update').hide(); $line.find('.inventory_update').hide();
$line.find('.inventory_done').show();
var old_stock = +$line.find('.current_stock').text() var old_stock = +$line.find('.current_stock').text()
var stock_diff = +$line.find('.stock_diff').text(); var stock_diff = +$line.find('.stock_diff').text();
@ -132,6 +156,12 @@ $(document).ready(function() {
update_stock($line, true); update_stock($line, true);
}); });
/**
* Total row
*/
init_total('box_cellar');
init_total('box_bar');
/** /**
* Websocket * Websocket
@ -147,6 +177,7 @@ $(document).ready(function() {
//Realigning input and displaying update button //Realigning input and displaying update button
$line.find('.inventory_update').show(); $line.find('.inventory_update').show();
$line.find('.inventory_done').hide();
//Displaying stock changes //Displaying stock changes
var stock = $line.find('.current_stock').text(); var stock = $line.find('.current_stock').text();

View file

@ -1,14 +1,11 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Inventaire #{{ inventory.pk }}{% endblock %} {% block title %}Inventaire #{{ inventory.pk }}{% endblock %}
{% block content-header-title %}Inventaire #{{ inventory.pk }}{% endblock %} {% block header-title %}Inventaire #{{ inventory.pk }}{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line"><b>Date:</b> {{ inventory.at }}</div> <div class="line"><b>Date:</b> {{ inventory.at }}</div>
<div class="line"><b>Par:</b> {{ inventory.by.trigramme }}</div> <div class="line"><b>Par:</b> {{ inventory.by.trigramme }}</div>
{% if inventory.order %} {% if inventory.order %}
@ -19,13 +16,13 @@
</a> </a>
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Détails</h2> <h2>Détails</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -54,9 +51,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -17,7 +17,7 @@
{% block title %}K-Psul{% endblock %} {% block title %}K-Psul{% endblock %}
{% block content-header %}{% endblock %} {% block header %}{% endblock %}
{% block help %} {% block help %}

View file

@ -38,8 +38,8 @@
<div class="buttons"> <div class="buttons">
{% if account.user == request.user %} {% if account.user == request.user %}
<ul class='nav nav-pills nav-justified'> <ul class='nav nav-pills nav-justified'>
<li class="active"><a data-toggle="pill" href="#tab_stats">Statistiques</a></li> <li class="active"><a class="btn btn-primary" data-toggle="pill" href="#tab_stats">Statistiques</a></li>
<li><a data-toggle="pill" href="#tab_history">Historique</a></li> <li><a class="btn btn-primary" data-toggle="pill" href="#tab_history">Historique</a></li>
</ul> </ul>
{% endif %} {% endif %}
<a class="btn btn-primary btn-lg" href="{% url 'kfet.account.update' account.trigramme %}"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.account.update' account.trigramme %}">

View file

@ -1,7 +1,7 @@
{% extends 'kfet/base.html' %} {% extends 'kfet/base.html' %}
{% block content %} {% block extra_head %}
<script type="text/javascript">
Connexion utilisateur K-Fêt générique réussie close();
</script>
{% endblock %} {% endblock %}

View file

@ -1,25 +1,20 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Commandes{% endblock %} {% block title %}Commandes{% endblock %}
{% block content-header-title %}Commandes{% endblock %} {% block header-title %}Commandes{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line line-big">{{ orders|length }}</div> <div class="line line-big">{{ orders|length }}</div>
<div class="line line-bigsub">commande{{ orders|length|pluralize }}</div> <div class="line line-bigsub">commande{{ orders|length|pluralize }}</div>
</div> </div>
<div class="buttons">
</div> {% endblock %}
</div>
</div> {% block main-content %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} <div class="content-right-block">
<div class="content-right">
<div class="content-right-block">
<h2>Fournisseurs</h2> <h2>Fournisseurs</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -55,8 +50,8 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div class="content-right-block"> <div class="content-right-block">
<h2>Liste des commandes</h2> <h2>Liste des commandes</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -98,9 +93,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,71 +1,72 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load widget_tweaks %} {% load widget_tweaks %}
{% block title %}Nouvelle commande{% endblock %} {% block title %}Nouvelle commande{% endblock %}
{% block content-header-title %}Nouvelle commande {{ supplier.name }}{% endblock %} {% block header-title %}Création d'une commande {{ supplier.name }}{% endblock %}
{% block content %} {% block main-size %}col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2{% endblock %}
{% block main-content %}
<div class="content-center">
<div>
<form action="" method="post"> <form action="" method="post">
{% csrf_token %} {% csrf_token %}
<table class="table text-center"> <div class="table-responsive">
<table class="table table-condensed text-center">
<thead> <thead>
<tr> <tr>
<td rowspan="2">Article</td> <td rowspan="2">Article</td>
<td colspan="5">Ventes <td colspan="{{ scale|length }}">Ventes
<span class='glyphicon glyphicon-question-sign' title="Ventes des 5 dernières semaines" data-placement="bottom"></span> <span class='glyphicon glyphicon-question-sign' title="Ventes des 5 dernières semaines" data-placement="bottom"></span>
</td> </td>
<td rowspan="2">V. moy. <td rowspan="2">V. moy.<br>
<span class='glyphicon glyphicon-question-sign' title="Moyenne des ventes" data-placement="bottom"></span> <span class='glyphicon glyphicon-question-sign' title="Moyenne des ventes" data-placement="bottom"></span>
</td> </td>
<td rowspan="2">E.T. <td rowspan="2">E.T.<br>
<span class='glyphicon glyphicon-question-sign' title="Écart-type des ventes" data-placement="bottom"></span> <span class='glyphicon glyphicon-question-sign' title="Écart-type des ventes" data-placement="bottom"></span>
</td> </td>
<td rowspan="2">Prév. <td rowspan="2">Prév.<br>
<span class='glyphicon glyphicon-question-sign' title="Prévision de ventes" data-placement="bottom"></span> <span class='glyphicon glyphicon-question-sign' title="Prévision de ventes" data-placement="bottom"></span>
</td> </td>
<td rowspan="2">Stock</td> <td rowspan="2">Stock</td>
<td rowspan="2">Rec. <td rowspan="2">Box<br>
<span class='glyphicon glyphicon-question-sign' title="Capacité d'une boite" data-placement="bottom"></span>
</td>
<td rowspan="2">Rec.<br>
<span class='glyphicon glyphicon-question-sign' title="Quantité conseillée" data-placement="bottom"></span> <span class='glyphicon glyphicon-question-sign' title="Quantité conseillée" data-placement="bottom"></span>
</td> </td>
<td rowspan="2">Commande</td> <td rowspan="2">Commande</td>
</tr> </tr>
<tr> <tr>
<td>S1</td> {% for label in scale.get_labels %}
<td>S2</td> <td>{{ label }}</td>
<td>S3</td> {% endfor %}
<td>S4</td>
<td>S5</td>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for form in formset %} {% for form in formset %}
{% ifchanged form.category %} {% ifchanged form.category %}
<tr class='section'> <tr class='section text-left'>
<td> {{ form.category_name }}</td> <td colspan="{{ scale|length|add:'8' }}">{{ form.category_name }}</td>
<td colspan="11"></td>
</tr> </tr>
{% endifchanged %} {% endifchanged %}
<tr> <tr>
{{ form.article }} {{ form.article }}
<td>{{ form.name }}</td> <td>{{ form.name }}</td>
<td>{{ form.v_s1 }}</td> {% for v_chunk in form.v_all %}
<td>{{ form.v_s2 }}</td> <td>{{ v_chunk }}</td>
<td>{{ form.v_s3 }}</td> {% endfor %}
<td>{{ form.v_s4 }}</td>
<td>{{ form.v_s5 }}</td>
<td>{{ form.v_moy }}</td> <td>{{ form.v_moy }}</td>
<td>{{ form.v_et }}</td> <td>{{ form.v_et }}</td>
<td>{{ form.v_prev }}</td> <td>{{ form.v_prev }}</td>
<td>{{ form.stock }}</td> <td>{{ form.stock }}</td>
<td>{{ form.box_capacity|default:"" }}</td>
<td>{{ form.c_rec }}</td> <td>{{ form.c_rec }}</td>
<td>{{ form.quantity_ordered | add_class:"form-control" }}</td> <td class="nopadding">{{ form.quantity_ordered | add_class:"form-control" }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div>
{{ formset.management_form }} {{ formset.management_form }}
{% if not perms.kfet.add_inventory %} {% if not perms.kfet.add_inventory %}
<div class='auth-form form-horizontal'> <div class='auth-form form-horizontal'>
@ -74,8 +75,6 @@
{% endif %} {% endif %}
<input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block"> <input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block">
</form> </form>
</div>
</div>
<script type='text/javascript'> <script type='text/javascript'>
$(document).ready(function () { $(document).ready(function () {

View file

@ -1,23 +1,27 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Commande #{{ order.pk }}{% endblock %} {% block title %}Commande #{{ order.pk }}{% endblock %}
{% block content-header-title %}Commande #{{ order.pk }}{% endblock %} {% block header-title %}Commande #{{ order.pk }}{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="content-left-top">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="content-left-top">
<div class="line"><b>Créée le:</b> {{ order.at }}</div> <div class="line"><b>Créée le:</b> {{ order.at }}</div>
<div class="line"><b>Fournisseur:</b> {{ order.supplier.name }}</div> <div class="line"><b>Fournisseur:</b> {{ order.supplier.name }}</div>
</div> </div>
</div> <div class="buttons">
</div> {% if not order.inventory %}
<div class="col-sm-8 col-md-9 col-content-right"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.order.to_inventory' order.pk %}">
{% include 'kfet/base_messages.html' %} Générer inventaire
<div class="content-right"> </a>
<div class="content-right-block"> {% endif %}
</div>
{% endblock %}
{% block main-content %}
<div class="content-right-block">
<h2>Détails</h2> <h2>Détails</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -53,15 +57,12 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div class="content-right-block"> <div class="content-right-block">
<h2>Mail</h2> <h2>Mail</h2>
<div> <div>
<textarea class="form-control" style="height:500px;">{{ mail }}</textarea> <textarea class="form-control" style="height:500px;">{{ mail }}</textarea>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,18 +1,17 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load widget_tweaks %} {% load widget_tweaks %}
{% block title %}{% endblock %} {% block title %}Nouvel inventaire{% endblock %}
{% block content-header-title %}{% endblock %} {% block header-title %}Création d'inventaire depuis la commande #{{ order.pk }}{% endblock %}
{% block content %} {% block main-size %}col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2{% endblock %}
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-center">
<div>
<form action="" method="post"> <form action="" method="post">
{% csrf_token %} {% csrf_token %}
<table class='table text-center'> <div class="table-responsive">
<table class='table table-condensed text-center'>
<thead> <thead>
<tr> <tr>
<td style="width:25%">Article</td> <td style="width:25%">Article</td>
@ -32,16 +31,17 @@
</tr> </tr>
{% endifchanged %} {% endifchanged %}
<tr> <tr>
{{ form.article }}
<td>{{ form.name }}</td> <td>{{ form.name }}</td>
<td>{{ form.price_HT | add_class:"form-control" }}</td> <td class="nopadding">{{ form.price_HT | add_class:"form-control" }}</td>
<td>{{ form.TVA | add_class:"form-control" }}</td> <td class="nopadding">{{ form.TVA | add_class:"form-control" }}</td>
<td>{{ form.rights | add_class:"form-control" }}</td> <td class="nopadding">{{ form.rights | add_class:"form-control" }}</td>
<td>{{ form.quantity_ordered }}</td> <td>{{ form.quantity_ordered }}</td>
<td>{{ form.quantity_received | add_class:"form-control" }}</td> <td class="nopadding">{{ form.quantity_received | add_class:"form-control" }}</td>
</tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div>
{{ formset.management_form }} {{ formset.management_form }}
{% if not perms.kfet.add_inventory %} {% if not perms.kfet.add_inventory %}
<div class='auth-form form-horizontal'> <div class='auth-form form-horizontal'>
@ -50,7 +50,5 @@
{% endif %} {% endif %}
<input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block"> <input type="submit" value="Enregistrer" class="btn btn-primary btn-lg btn-block">
</form> </form>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -1,24 +1,21 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_2.html" %}
{% block title %}Paramètres{% endblock %} {% block title %}Paramètres{% endblock %}
{% block content-header-title %}Paramètres{% endblock %} {% block header-title %}Paramètres{% endblock %}
{% block content %} {% block fixed-content %}
<div class="row"> <div class="buttons">
<div class="col-sm-4 col-md-3 col-content-left">
<div class="content-left">
<div class="buttons">
<a class="btn btn-primary btn-lg" href="{% url 'kfet.settings.update' %}"> <a class="btn btn-primary btn-lg" href="{% url 'kfet.settings.update' %}">
Modifier Modifier
</a> </a>
</div> </div>
</div>
</div> {% endblock %}
<div class="col-sm-8 col-md-9 col-content-right">
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="content-right">
<div class="content-right-block"> <div class="content-right-block">
<h2>Valeurs</h2> <h2>Valeurs</h2>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-condensed"> <table class="table table-condensed">
@ -32,15 +29,12 @@
{% for key, value in kfet_config.list %} {% for key, value in kfet_config.list %}
<tr> <tr>
<td>{{ key }}</td> <td>{{ key }}</td>
<td>{{ value }}</td> <td>{{ value|default_if_none:"" }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View file

@ -1,25 +1,12 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% block title %}Modification des paramètres{% endblock %} {% block title %}Modification des paramètres{% endblock %}
{% block content-header-title %}Modification des paramètres{% endblock %} {% block header-title %}Modification des paramètres{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include "kfet/base_messages.html" %} {% block main-content %}
<div class="row form-only"> {% include "kfet/base_form.html" with authz=perms.kfet.change_settings submit_text="Mettre à jour"%}
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form submit="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.change_settings %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Mettre à jour" %}
</form>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -1,27 +1,12 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load widget_tweaks %}
{% load staticfiles %}
{% block title %}Fournisseur - Modification{% endblock %} {% block title %}{{ supplier.name }} - Édition{% endblock %}
{% block content-header-title %}Fournisseur - Modification{% endblock %} {% block header-title %}Édition du fournisseur {{ supplier.name }}{% endblock %}
{% block content %} {% block main-class %}content-form{% endblock %}
{% include 'kfet/base_messages.html' %} {% block main-content %}
<div class="row form-only"> {% include 'kfet/base_form.html' with authz=perms.kfet.change_supplier submit_text="Mettre à jour" %}
<div class="col-sm-12 col-md-8 col-md-offset-2">
<div class="content-form">
<form submit="" method="post" class="form-horizontal">
{% csrf_token %}
{% include 'kfet/form_snippet.html' with form=form %}
{% if not perms.kfet.change_supplier %}
{% include 'kfet/form_authentication_snippet.html' %}
{% endif %}
{% include 'kfet/form_submit_snippet.html' with value="Mettre à jour" %}
</form>
</div>
</div>
</div>
{% endblock %} {% endblock %}

View file

@ -1,4 +1,4 @@
{% extends 'kfet/base.html' %} {% extends "kfet/base_col_1.html" %}
{% load staticfiles %} {% load staticfiles %}
{% block extra_head %} {% block extra_head %}
@ -7,13 +7,14 @@
{% endblock %} {% endblock %}
{% block title %}Nouveaux transferts{% endblock %} {% block title %}Nouveaux transferts{% endblock %}
{% block content-header-title %}Nouveaux transferts{% endblock %} {% block header-title %}Création de transferts{% endblock %}
{% block content %} {% block main-size %}col-sm-12{% endblock %}
{% csrf_token %} {% block main-content %}
<form id="transfers_form"> <form id="transfers_form" style="background-color: transparent;">
{% csrf_token %}
<div class="transfer_general text-center"> <div class="transfer_general text-center">
<input type="text" name="comment" id="comment" placeholder="Commentaire"><!-- <input type="text" name="comment" id="comment" placeholder="Commentaire"><!--
--><button type="submit" id="submit" class="btn btn-primary btn-lg">Enregistrer</button> --><button type="submit" id="submit" class="btn btn-primary btn-lg">Enregistrer</button>

View file

@ -28,7 +28,6 @@ def highlight_user(user, q):
return highlight_text(text, q) return highlight_text(text, q)
@register.filter(is_safe=True) @register.filter(is_safe=True)
def highlight_clipper(clipper, q): def highlight_clipper(clipper, q):
if clipper.fullname: if clipper.fullname:
@ -38,8 +37,12 @@ def highlight_clipper(clipper, q):
return highlight_text(text, q) return highlight_text(text, q)
@register.filter() @register.filter()
def ukf(balance, is_cof): def ukf(balance, is_cof):
grant = is_cof and (1 + kfet_config.subvention_cof / 100) or 1 grant = is_cof and (1 + kfet_config.subvention_cof / 100) or 1
return floor(balance * 10 * grant) return floor(balance * 10 * grant)
@register.filter()
def widget_type(field):
return field.field.widget.__class__.__name__

View file

@ -95,6 +95,8 @@ def login_genericteam(request):
user = authenticate(username="kfet_genericteam", token=token.token) user = authenticate(username="kfet_genericteam", token=token.token)
login(request, user) login(request, user)
messages.success(request, "Connecté en utilisateur partagé")
if need_cas_logout: if need_cas_logout:
# Vue de déconnexion de CAS # Vue de déconnexion de CAS
return logout_cas return logout_cas
@ -553,7 +555,7 @@ class AccountGroupCreate(SuccessMessageMixin, CreateView):
success_message = 'Nouveau groupe : %(name)s' success_message = 'Nouveau groupe : %(name)s'
success_url = reverse_lazy('kfet.account.group') success_url = reverse_lazy('kfet.account.group')
class AccountGroupUpdate(UpdateView): class AccountGroupUpdate(SuccessMessageMixin, UpdateView):
queryset = Group.objects.filter(name__icontains='K-Fêt') queryset = Group.objects.filter(name__icontains='K-Fêt')
template_name = 'kfet/account_group_form.html' template_name = 'kfet/account_group_form.html'
form_class = GroupForm form_class = GroupForm
@ -1908,9 +1910,12 @@ def order_create(request, pk):
else: else:
formset = cls_formset(initial=initial) formset = cls_formset(initial=initial)
scale.label_fmt = "S -{rev_i}"
return render(request, 'kfet/order_create.html', { return render(request, 'kfet/order_create.html', {
'supplier': supplier, 'supplier': supplier,
'formset': formset, 'formset': formset,
'scale': scale,
}) })
@ -2057,6 +2062,7 @@ def order_to_inventory(request, pk):
return render(request, 'kfet/order_to_inventory.html', { return render(request, 'kfet/order_to_inventory.html', {
'formset': formset, 'formset': formset,
'order': order,
}) })
class SupplierUpdate(SuccessMessageMixin, UpdateView): class SupplierUpdate(SuccessMessageMixin, UpdateView):