Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Sith
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
59
Issues
59
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AE
Sith
Commits
5b500689
Commit
5b500689
authored
Sep 08, 2016
by
Skia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make sellings for clubs
parent
90e47c9d
Pipeline
#208
failed with stage
in 1 minute and 55 seconds
Changes
13
Pipelines
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
289 additions
and
198 deletions
+289
-198
club/templates/club/club_base.jinja
club/templates/club/club_base.jinja
+0
-65
club/templates/club/club_old_members.jinja
club/templates/club/club_old_members.jinja
+1
-1
club/templates/club/club_sellings.jinja
club/templates/club/club_sellings.jinja
+46
-0
club/urls.py
club/urls.py
+1
-0
club/views.py
club/views.py
+51
-0
core/static/core/jquery.datetimepicker.min.css
core/static/core/jquery.datetimepicker.min.css
+1
-0
core/static/core/js/jquery.datetimepicker.full.min.js
core/static/core/js/jquery.datetimepicker.full.min.js
+2
-0
core/templates/core/base.jinja
core/templates/core/base.jinja
+7
-0
core/templatetags/renderer.py
core/templatetags/renderer.py
+12
-0
core/views/forms.py
core/views/forms.py
+9
-1
locale/fr/LC_MESSAGES/django.mo
locale/fr/LC_MESSAGES/django.mo
+0
-0
locale/fr/LC_MESSAGES/django.po
locale/fr/LC_MESSAGES/django.po
+153
-131
sith/urls.py
sith/urls.py
+6
-0
No files found.
club/templates/club/club_base.jinja
deleted
100644 → 0
View file @
90e47c9d
{%
extends
"core/base.jinja"
%}
{%
block
content
%}
<div
class=
"tool-bar"
>
<div>
{{
club.name
}}
</div>
<div
class=
"tools"
>
<a
href=
"
{{
url
(
'club:club_view'
,
club_id
=
club.id
)
}}
"
{%
-
if
tab
==
"infos"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Infos
{%
endtrans
%}
</a>
{%
if
can_view
(
club
,
user
)
%}
<a
href=
"
{{
url
(
'club:club_members'
,
club_id
=
club.pk
)
}}
"
{%
-
if
tab
==
"members"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Members
{%
endtrans
%}
</a>
{%
endif
%}
{%
if
can_view
(
club
,
user
)
%}
<a
href=
"
{{
url
(
'club:club_old_members'
,
club_id
=
club.pk
)
}}
"
{%
-
if
tab
==
"elderlies"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Old members
{%
endtrans
%}
</a>
{%
endif
%}
{%
if
can_view
(
club
,
user
)
%}
<a
href=
"
{{
url
(
'club:tools'
,
club_id
=
club.id
)
}}
"
{%
-
if
tab
==
"tools"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Tools
{%
endtrans
%}
</a>
{%
endif
%}
{%
if
can_edit
(
club
,
request.user
)
%}
<a
href=
"
{{
url
(
'club:club_edit'
,
club_id
=
club.id
)
}}
"
{%
-
if
tab
==
"edit"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Edit
{%
endtrans
%}
</a>
{%
endif
%}
{%
if
can_edit_prop
(
club
,
request.user
)
%}
<a
href=
"
{{
url
(
'club:club_prop'
,
club_id
=
club.id
)
}}
"
{%
-
if
tab
==
"props"
-
%}
class=
"selected_tab"
{%
-
endif
-
%}
>
{%
trans
%}
Props
{%
endtrans
%}
</a>
{%
endif
%}
</div>
<hr>
</div>
<div>
{%
block
club
%}
{%
endblock
%}
</div>
{%
endblock
%}
club/templates/club/club_old_members.jinja
View file @
5b500689
...
...
@@ -12,7 +12,7 @@
<td>
{%
trans
%}
To
{%
endtrans
%}
</td>
</thead>
<tbody>
{%
for
m
in
club.members.exclude
(
end_date
=
None
)
.
order_by
(
'-role'
,
'-end_date'
)
.
all
()
%}
{%
for
m
in
club.members.exclude
(
end_date
=
None
)
.
order_by
(
'-role'
,
'
description'
,
'
-end_date'
)
.
all
()
%}
<tr>
<td>
{{
user_profile_link
(
m.user
)
}}
</td>
<td>
{{
settings.SITH_CLUB_ROLES
[
m.role
]
}}
</td>
...
...
club/templates/club/club_sellings.jinja
0 → 100644
View file @
5b500689
{%
extends
"core/base.jinja"
%}
{%
from
'core/macros.jinja'
import
user_profile_link
%}
{%
block
content
%}
<h3>
{%
trans
%}
Sellings
{%
endtrans
%}
</h3>
<form
action=
""
method=
"get"
>
{%
csrf_token
%}
{{
form
}}
<p><input
type=
"submit"
value=
"
{%
trans
%}
Show
{%
endtrans
%}
"
/></p>
</form>
<p>
{%
trans
%}
Quantity:
{%
endtrans
%}{{
result.count
()
}}
{%
trans
%}
units
{%
endtrans
%}
<br/>
{%
trans
%}
Total:
{%
endtrans
%}{{
total
}}
€
</p>
<table>
<thead>
<tr>
<td>
{%
trans
%}
Date
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Counter
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Barman
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Customer
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Label
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Quantity
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Total
{%
endtrans
%}
</td>
<td>
{%
trans
%}
Payment method
{%
endtrans
%}
</td>
</tr>
</thead>
<tbody>
{%
for
s
in
result
%}
<tr>
<td>
{{
s.date
|
localtime
|
date
(
DATETIME_FORMAT
)
}}
{{
s.date
|
localtime
|
time
(
DATETIME_FORMAT
)
}}
</td>
<td>
{{
s.counter
}}
</td>
<td><a
href=
"
{{
s.seller.get_absolute_url
()
}}
"
>
{{
s.seller.get_display_name
()
}}
</a></td>
<td><a
href=
"
{{
s.customer.user.get_absolute_url
()
}}
"
>
{{
s.customer.user.get_display_name
()
}}
</a></td>
<td>
{{
s.label
}}
</td>
<td>
{{
s.quantity
}}
</td>
<td>
{{
s.quantity
*
s.unit_price
}}
€
</td>
<td>
{{
s.get_payment_method_display
()
}}
</td>
</tr>
{%
endfor
%}
</tbody>
</table>
{%
endblock
%}
club/urls.py
View file @
5b500689
...
...
@@ -9,6 +9,7 @@ urlpatterns = [
url
(
r
'^(?P<club_id>[0-9]+)/edit$'
,
ClubEditView
.
as_view
(),
name
=
'club_edit'
),
url
(
r
'^(?P<club_id>[0-9]+)/members$'
,
ClubMembersView
.
as_view
(),
name
=
'club_members'
),
url
(
r
'^(?P<club_id>[0-9]+)/elderlies$'
,
ClubOldMembersView
.
as_view
(),
name
=
'club_old_members'
),
url
(
r
'^(?P<club_id>[0-9]+)/sellings$'
,
ClubSellingView
.
as_view
(),
name
=
'club_sellings'
),
url
(
r
'^(?P<club_id>[0-9]+)/prop$'
,
ClubEditPropView
.
as_view
(),
name
=
'club_prop'
),
url
(
r
'^(?P<club_id>[0-9]+)/tools$'
,
ClubToolsView
.
as_view
(),
name
=
'tools'
),
url
(
r
'^membership/(?P<membership_id>[0-9]+)/set_old$'
,
MembershipSetOldView
.
as_view
(),
name
=
'membership_set_old'
),
...
...
club/views.py
View file @
5b500689
...
...
@@ -8,10 +8,15 @@ from django.http import HttpResponseRedirect
from
django.core.urlresolvers
import
reverse
from
django.utils
import
timezone
from
django.utils.translation
import
ugettext
as
_
from
django.conf
import
settings
from
datetime
import
timedelta
from
core.views
import
CanViewMixin
,
CanEditMixin
,
CanEditPropMixin
,
TabedViewMixin
from
core.views.forms
import
SelectDate
,
SelectSingle
,
SelectDateTime
from
club.models
import
Club
,
Membership
from
sith.settings
import
SITH_MAXIMUM_FREE_ROLE
,
SITH_MAIN_BOARD_GROUP
from
counter.models
import
Product
,
Selling
,
Counter
class
ClubTabsMixin
(
TabedViewMixin
):
def
get_tabs_title
(
self
):
...
...
@@ -46,6 +51,11 @@ class ClubTabsMixin(TabedViewMixin):
'slug'
:
'edit'
,
'name'
:
_
(
"Edit"
),
})
tab_list
.
append
({
'url'
:
reverse
(
'club:club_sellings'
,
kwargs
=
{
'club_id'
:
self
.
object
.
id
}),
'slug'
:
'sellings'
,
'name'
:
_
(
"Sellings"
),
})
if
self
.
request
.
user
.
is_owner
(
self
.
object
):
tab_list
.
append
({
'url'
:
reverse
(
'club:club_prop'
,
kwargs
=
{
'club_id'
:
self
.
object
.
id
}),
...
...
@@ -143,6 +153,47 @@ class ClubOldMembersView(ClubTabsMixin, CanViewMixin, DetailView):
template_name
=
'club/club_old_members.jinja'
current_tab
=
"elderlies"
class
SellingsFormBase
(
forms
.
Form
):
begin_date
=
forms
.
DateTimeField
([
'%Y-%m-%d %H:%M:%S'
],
label
=
_
(
"Begin date"
),
required
=
False
,
widget
=
SelectDateTime
)
end_date
=
forms
.
DateTimeField
([
'%Y-%m-%d %H:%M:%S'
],
label
=
_
(
"End date"
),
required
=
False
,
widget
=
SelectDateTime
)
counter
=
forms
.
ModelChoiceField
(
Counter
.
objects
.
order_by
(
'name'
).
all
(),
label
=
_
(
"Counter"
),
required
=
False
)
class
ClubSellingView
(
ClubTabsMixin
,
CanEditMixin
,
DetailView
):
"""
Sellings of a club
"""
model
=
Club
pk_url_kwarg
=
"club_id"
template_name
=
'club/club_sellings.jinja'
current_tab
=
"sellings"
def
get_form_class
(
self
):
kwargs
=
{
'product'
:
forms
.
ModelChoiceField
(
self
.
object
.
products
.
order_by
(
'name'
).
all
(),
label
=
_
(
"Product"
),
required
=
False
)
}
return
type
(
'SellingsForm'
,
(
SellingsFormBase
,),
kwargs
)
def
get_context_data
(
self
,
**
kwargs
):
kwargs
=
super
(
ClubSellingView
,
self
).
get_context_data
(
**
kwargs
)
form
=
self
.
get_form_class
()(
self
.
request
.
GET
,
initial
=
{
'begin_date'
:
timezone
.
now
()
-
timedelta
(
days
=
7
)})
# form = self.get_form_class()(initial={'begin_date': timezone.now()-timedelta(days=7)})
qs
=
Selling
.
objects
.
filter
(
club
=
self
.
object
)
if
form
.
is_valid
():
if
form
.
cleaned_data
[
'begin_date'
]:
qs
=
qs
.
filter
(
date__gte
=
form
.
cleaned_data
[
'begin_date'
])
if
form
.
cleaned_data
[
'end_date'
]:
qs
=
qs
.
filter
(
date__lte
=
form
.
cleaned_data
[
'end_date'
])
if
form
.
cleaned_data
[
'counter'
]:
qs
=
qs
.
filter
(
counter
=
form
.
cleaned_data
[
'counter'
])
if
form
.
cleaned_data
[
'product'
]:
qs
=
qs
.
filter
(
product__id
=
form
.
cleaned_data
[
'product'
].
id
)
kwargs
[
'result'
]
=
qs
.
all
().
order_by
(
'-id'
)
kwargs
[
'total'
]
=
sum
([
s
.
quantity
*
s
.
unit_price
for
s
in
qs
.
all
()])
else
:
kwargs
[
'result'
]
=
qs
[:
0
]
kwargs
[
'form'
]
=
form
return
kwargs
class
ClubEditView
(
ClubTabsMixin
,
CanEditMixin
,
UpdateView
):
"""
Edit a Club's main informations (for the club's members)
...
...
core/static/core/jquery.datetimepicker.min.css
0 → 100644
View file @
5b500689
.xdsoft_datetimepicker
{
box-shadow
:
0
5px
15px
-5px
rgba
(
0
,
0
,
0
,
0.506
);
background
:
#fff
;
border-bottom
:
1px
solid
#bbb
;
border-left
:
1px
solid
#ccc
;
border-right
:
1px
solid
#ccc
;
border-top
:
1px
solid
#ccc
;
color
:
#333
;
font-family
:
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
;
padding
:
8px
;
padding-left
:
0
;
padding-top
:
2px
;
position
:
absolute
;
z-index
:
9999
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
display
:
none
}
.xdsoft_datetimepicker.xdsoft_rtl
{
padding
:
8px
0
8px
8px
}
.xdsoft_datetimepicker
iframe
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
75px
;
height
:
210px
;
background
:
transparent
;
border
:
0
}
.xdsoft_datetimepicker
button
{
border
:
none
!important
}
.xdsoft_noselect
{
-webkit-touch-callout
:
none
;
-webkit-user-select
:
none
;
-khtml-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
-o-user-select
:
none
;
user-select
:
none
}
.xdsoft_noselect
::selection
{
background
:
transparent
}
.xdsoft_noselect
::-moz-selection
{
background
:
transparent
}
.xdsoft_datetimepicker.xdsoft_inline
{
display
:
inline-block
;
position
:
static
;
box-shadow
:
none
}
.xdsoft_datetimepicker
*
{
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding
:
0
;
margin
:
0
}
.xdsoft_datetimepicker
.xdsoft_datepicker
,
.xdsoft_datetimepicker
.xdsoft_timepicker
{
display
:
none
}
.xdsoft_datetimepicker
.xdsoft_datepicker.active
,
.xdsoft_datetimepicker
.xdsoft_timepicker.active
{
display
:
block
}
.xdsoft_datetimepicker
.xdsoft_datepicker
{
width
:
224px
;
float
:
left
;
margin-left
:
8px
}
.xdsoft_datetimepicker.xdsoft_rtl
.xdsoft_datepicker
{
float
:
right
;
margin-right
:
8px
;
margin-left
:
0
}
.xdsoft_datetimepicker.xdsoft_showweeks
.xdsoft_datepicker
{
width
:
256px
}
.xdsoft_datetimepicker
.xdsoft_timepicker
{
width
:
58px
;
float
:
left
;
text-align
:
center
;
margin-left
:
8px
;
margin-top
:
0
}
.xdsoft_datetimepicker.xdsoft_rtl
.xdsoft_timepicker
{
float
:
right
;
margin-right
:
8px
;
margin-left
:
0
}
.xdsoft_datetimepicker
.xdsoft_datepicker.active
+
.xdsoft_timepicker
{
margin-top
:
8px
;
margin-bottom
:
3px
}
.xdsoft_datetimepicker
.xdsoft_monthpicker
{
position
:
relative
;
text-align
:
center
}
.xdsoft_datetimepicker
.xdsoft_label
i
,
.xdsoft_datetimepicker
.xdsoft_prev
,
.xdsoft_datetimepicker
.xdsoft_next
,
.xdsoft_datetimepicker
.xdsoft_today_button
{
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC)
}
.xdsoft_datetimepicker
.xdsoft_label
i
{
opacity
:
.5
;
background-position
:
-92px
-19px
;
display
:
inline-block
;
width
:
9px
;
height
:
20px
;
vertical-align
:
middle
}
.xdsoft_datetimepicker
.xdsoft_prev
{
float
:
left
;
background-position
:
-20px
0
}
.xdsoft_datetimepicker
.xdsoft_today_button
{
float
:
left
;
background-position
:
-70px
0
;
margin-left
:
5px
}
.xdsoft_datetimepicker
.xdsoft_next
{
float
:
right
;
background-position
:
0
0
}
.xdsoft_datetimepicker
.xdsoft_next
,
.xdsoft_datetimepicker
.xdsoft_prev
,
.xdsoft_datetimepicker
.xdsoft_today_button
{
background-color
:
transparent
;
background-repeat
:
no-repeat
;
border
:
0
none
;
cursor
:
pointer
;
display
:
block
;
height
:
30px
;
opacity
:
.5
;
-ms-filter
:
"alpha(opacity=50)"
;
outline
:
medium
none
;
overflow
:
hidden
;
padding
:
0
;
position
:
relative
;
text-indent
:
100%
;
white-space
:
nowrap
;
width
:
20px
;
min-width
:
0
}
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_prev
,
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_next
{
float
:
none
;
background-position
:
-40px
-15px
;
height
:
15px
;
width
:
30px
;
display
:
block
;
margin-left
:
14px
;
margin-top
:
7px
}
.xdsoft_datetimepicker.xdsoft_rtl
.xdsoft_timepicker
.xdsoft_prev
,
.xdsoft_datetimepicker.xdsoft_rtl
.xdsoft_timepicker
.xdsoft_next
{
float
:
none
;
margin-left
:
0
;
margin-right
:
14px
}
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_prev
{
background-position
:
-40px
0
;
margin-bottom
:
7px
;
margin-top
:
0
}
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
{
height
:
151px
;
overflow
:
hidden
;
border-bottom
:
1px
solid
#ddd
}
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
{
background
:
#f5f5f5
;
border-top
:
1px
solid
#ddd
;
color
:
#666
;
font-size
:
12px
;
text-align
:
center
;
border-collapse
:
collapse
;
cursor
:
pointer
;
border-bottom-width
:
0
;
height
:
25px
;
line-height
:
25px
}
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
:first-child
{
border-top-width
:
0
}
.xdsoft_datetimepicker
.xdsoft_today_button
:hover
,
.xdsoft_datetimepicker
.xdsoft_next
:hover
,
.xdsoft_datetimepicker
.xdsoft_prev
:hover
{
opacity
:
1
;
-ms-filter
:
"alpha(opacity=100)"
}
.xdsoft_datetimepicker
.xdsoft_label
{
display
:
inline
;
position
:
relative
;
z-index
:
9999
;
margin
:
0
;
padding
:
5px
3px
;
font-size
:
14px
;
line-height
:
20px
;
font-weight
:
bold
;
background-color
:
#fff
;
float
:
left
;
width
:
182px
;
text-align
:
center
;
cursor
:
pointer
}
.xdsoft_datetimepicker
.xdsoft_label
:hover
>
span
{
text-decoration
:
underline
}
.xdsoft_datetimepicker
.xdsoft_label
:hover
i
{
opacity
:
1.0
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select
{
border
:
1px
solid
#ccc
;
position
:
absolute
;
right
:
0
;
top
:
30px
;
z-index
:
101
;
display
:
none
;
background
:
#fff
;
max-height
:
160px
;
overflow-y
:
hidden
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select.xdsoft_monthselect
{
right
:
-7px
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select.xdsoft_yearselect
{
right
:
2px
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select
>
div
>
.xdsoft_option
:hover
{
color
:
#fff
;
background
:
#ff8000
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select
>
div
>
.xdsoft_option
{
padding
:
2px
10px
2px
5px
;
text-decoration
:
none
!important
}
.xdsoft_datetimepicker
.xdsoft_label
>
.xdsoft_select
>
div
>
.xdsoft_option.xdsoft_current
{
background
:
#3af
;
box-shadow
:
#178fe5
0
1px
3px
0
inset
;
color
:
#fff
;
font-weight
:
700
}
.xdsoft_datetimepicker
.xdsoft_month
{
width
:
100px
;
text-align
:
right
}
.xdsoft_datetimepicker
.xdsoft_calendar
{
clear
:
both
}
.xdsoft_datetimepicker
.xdsoft_year
{
width
:
48px
;
margin-left
:
5px
}
.xdsoft_datetimepicker
.xdsoft_calendar
table
{
border-collapse
:
collapse
;
width
:
100%
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
>
div
{
padding-right
:
5px
}
.xdsoft_datetimepicker
.xdsoft_calendar
th
{
height
:
25px
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
,
.xdsoft_datetimepicker
.xdsoft_calendar
th
{
width
:
14.2857142%
;
background
:
#f5f5f5
;
border
:
1px
solid
#ddd
;
color
:
#666
;
font-size
:
12px
;
text-align
:
right
;
vertical-align
:
middle
;
padding
:
0
;
border-collapse
:
collapse
;
cursor
:
pointer
;
height
:
25px
}
.xdsoft_datetimepicker.xdsoft_showweeks
.xdsoft_calendar
td
,
.xdsoft_datetimepicker.xdsoft_showweeks
.xdsoft_calendar
th
{
width
:
12.5%
}
.xdsoft_datetimepicker
.xdsoft_calendar
th
{
background
:
#f1f1f1
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_today
{
color
:
#3af
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_highlighted_default
{
background
:
#ffe9d2
;
box-shadow
:
#ffb871
0
1px
4px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_highlighted_mint
{
background
:
#c1ffc9
;
box-shadow
:
#00dd1c
0
1px
4px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_default
,
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_current
,
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
.xdsoft_current
{
background
:
#3af
;
box-shadow
:
#178fe5
0
1px
3px
0
inset
;
color
:
#fff
;
font-weight
:
700
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_other_month
,
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_disabled
,
.xdsoft_datetimepicker
.xdsoft_time_box
>
div
>
div
.xdsoft_disabled
{
opacity
:
.5
;
-ms-filter
:
"alpha(opacity=50)"
;
cursor
:
default
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_other_month.xdsoft_disabled
{
opacity
:
.2
;
-ms-filter
:
"alpha(opacity=20)"
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
:hover
,
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
:hover
{
color
:
#fff
!important
;
background
:
#ff8000
!important
;
box-shadow
:
none
!important
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_current.xdsoft_disabled
:hover
,
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
.xdsoft_current.xdsoft_disabled
:hover
{
background
:
#3af
!important
;
box-shadow
:
#178fe5
0
1px
3px
0
inset
!important
;
color
:
#fff
!important
}
.xdsoft_datetimepicker
.xdsoft_calendar
td
.xdsoft_disabled
:hover
,
.xdsoft_datetimepicker
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
.xdsoft_disabled
:hover
{
color
:
inherit
!important
;
background
:
inherit
!important
;
box-shadow
:
inherit
!important
}
.xdsoft_datetimepicker
.xdsoft_calendar
th
{
font-weight
:
700
;
text-align
:
center
;
color
:
#999
;
cursor
:
default
}
.xdsoft_datetimepicker
.xdsoft_copyright
{
color
:
#ccc
!important
;
font-size
:
10px
;
clear
:
both
;
float
:
none
;
margin-left
:
8px
}
.xdsoft_datetimepicker
.xdsoft_copyright
a
{
color
:
#eee
!important
}
.xdsoft_datetimepicker
.xdsoft_copyright
a
:hover
{
color
:
#aaa
!important
}
.xdsoft_time_box
{
position
:
relative
;
border
:
1px
solid
#ccc
}
.xdsoft_scrollbar
>
.xdsoft_scroller
{
background
:
#ccc
!important
;
height
:
20px
;
border-radius
:
3px
}
.xdsoft_scrollbar
{
position
:
absolute
;
width
:
7px
;
right
:
0
;
top
:
0
;
bottom
:
0
;
cursor
:
pointer
}
.xdsoft_datetimepicker.xdsoft_rtl
.xdsoft_scrollbar
{
left
:
0
;
right
:
auto
}
.xdsoft_scroller_box
{
position
:
relative
}
.xdsoft_datetimepicker.xdsoft_dark
{
box-shadow
:
0
5px
15px
-5px
rgba
(
255
,
255
,
255
,
0.506
);
background
:
#000
;
border-bottom
:
1px
solid
#444
;
border-left
:
1px
solid
#333
;
border-right
:
1px
solid
#333
;
border-top
:
1px
solid
#333
;
color
:
#ccc
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_timepicker
.xdsoft_time_box
{
border-bottom
:
1px
solid
#222
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
{
background
:
#0a0a0a
;
border-top
:
1px
solid
#222
;
color
:
#999
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_label
{
background-color
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_label
>
.xdsoft_select
{
border
:
1px
solid
#333
;
background
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_label
>
.xdsoft_select
>
div
>
.xdsoft_option
:hover
{
color
:
#000
;
background
:
#007fff
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_label
>
.xdsoft_select
>
div
>
.xdsoft_option.xdsoft_current
{
background
:
#c50
;
box-shadow
:
#b03e00
0
1px
3px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_label
i
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_prev
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_next
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_today_button
{
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==)
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
th
{
background
:
#0a0a0a
;
border
:
1px
solid
#222
;
color
:
#999
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
th
{
background
:
#0e0e0e
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
.xdsoft_today
{
color
:
#c50
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
.xdsoft_highlighted_default
{
background
:
#ffe9d2
;
box-shadow
:
#ffb871
0
1px
4px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
.xdsoft_highlighted_mint
{
background
:
#c1ffc9
;
box-shadow
:
#00dd1c
0
1px
4px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
.xdsoft_default
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
.xdsoft_current
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
.xdsoft_current
{
background
:
#c50
;
box-shadow
:
#b03e00
0
1px
3px
0
inset
;
color
:
#000
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
td
:hover
,
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_timepicker
.xdsoft_time_box
>
div
>
div
:hover
{
color
:
#000
!important
;
background
:
#007fff
!important
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_calendar
th
{
color
:
#666
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_copyright
{
color
:
#333
!important
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_copyright
a
{
color
:
#111
!important
}
.xdsoft_datetimepicker.xdsoft_dark
.xdsoft_copyright
a
:hover
{
color
:
#555
!important
}
.xdsoft_dark
.xdsoft_time_box
{
border
:
1px
solid
#333
}
.xdsoft_dark
.xdsoft_scrollbar
>
.xdsoft_scroller
{
background
:
#333
!important
}
.xdsoft_datetimepicker
.xdsoft_save_selected
{
display
:
block
;
border
:
1px
solid
#ddd
!important
;
margin-top
:
5px
;
width
:
100%
;
color
:
#454551
;
font-size
:
13px
}
.xdsoft_datetimepicker
.blue-gradient-button
{
font-family
:
"museo-sans"
,
"Book Antiqua"
,
sans-serif
;
font-size
:
12px
;
font-weight
:
300
;
color
:
#82878c
;
height
:
28px
;
position
:
relative
;
padding
:
4px
17px
4px
33px
;
border
:
1px
solid
#d7d8da
;
background
:
-moz-linear-gradient
(
top
,
#fff
0
,
#f4f8fa
73%
);
background
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
color-stop
(
0
,
#fff
),
color-stop
(
73%
,
#f4f8fa
));
background
:
-webkit-linear-gradient
(
top
,
#fff
0
,
#f4f8fa
73%
);
background
:
-o-linear-gradient
(
top
,
#fff
0
,
#f4f8fa
73%
);
background
:
-ms-linear-gradient
(
top
,
#fff
0
,
#f4f8fa
73%
);
background
:
linear-gradient
(
to
bottom
,
#fff
0
,
#f4f8fa
73%
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#fff'
,
endColorstr
=
'#f4f8fa'
,
GradientType
=
0
)}
.xdsoft_datetimepicker
.blue-gradient-button
:hover
,
.xdsoft_datetimepicker
.blue-gradient-button
:focus
,
.xdsoft_datetimepicker
.blue-gradient-button
:hover
span
,
.xdsoft_datetimepicker
.blue-gradient-button
:focus
span
{
color
:
#454551
;
background
:
-moz-linear-gradient
(
top
,
#f4f8fa
0
,
#FFF
73%
);
background
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
color-stop
(
0
,
#f4f8fa
),
color-stop
(
73%
,
#FFF
));
background
:
-webkit-linear-gradient
(
top
,
#f4f8fa
0
,
#FFF
73%
);
background
:
-o-linear-gradient
(
top
,
#f4f8fa
0
,
#FFF
73%
);
background
:
-ms-linear-gradient
(
top
,
#f4f8fa
0
,
#FFF
73%
);
background
:
linear-gradient
(
to
bottom
,
#f4f8fa
0
,
#FFF
73%
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#f4f8fa'
,
endColorstr
=
'#FFF'
,
GradientType
=
0
)}
core/static/core/js/jquery.datetimepicker.full.min.js
0 → 100644
View file @
5b500689
This diff is collapsed.
Click to expand it.
core/templates/core/base.jinja
View file @
5b500689
...
...
@@ -5,6 +5,7 @@
<title>
{%
block
title
%}{%
trans
%}
Welcome!
{%
endtrans
%}{%
endblock
%}
</title>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'core/base.css'
)
}}
"
>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'core/multiple-select.css'
)
}}
"
>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'core/jquery.datetimepicker.min.css'
)
}}
"
>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'core/js/ui/jquery-ui.min.css'
)
}}
"
>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'ajax_select/css/ajax_select.css'
)
}}
"
>
<link
rel=
"stylesheet"
href=
"
{{
static
(
'core/style.css'
)
}}
"
>
...
...
@@ -113,8 +114,10 @@
<script
src=
"
{{
static
(
'core/js/jquery-3.1.0.min.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/ui/jquery-ui.min.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/ui/i18n/datepicker-fr.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/jquery.datetimepicker.full.min.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/multiple-select.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'ajax_select/js/ajax_select.js'
)
}}
"
></script>
<script
src=
"
{{
url
(
'javascript-catalog'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/script.js'
)
}}
"
></script>
<script>
$
(
'
.select_single
'
).
multipleSelect
({
...
...
@@ -146,6 +149,10 @@ $(document).keydown(function (e) {
return
false
;
}
});
jQuery
.
datetimepicker
.
setLocale
(
'
{{
request.LANGUAGE_CODE
|
lower
}}
'
);
$
(
'
.select_datetime
'
).
datetimepicker
({
format
:
'
Y-m-d H:i:s
'
,
});
</script>
{%
endblock
%}
</body>
...
...
core/templatetags/renderer.py
View file @
5b500689
...
...
@@ -13,5 +13,17 @@ def markdown(text):
md
=
mistune
.
Markdown
()
return
mark_safe
(
md
(
escape
(
text
)))
@
register
.
filter
()
@
stringfilter
def
datetime_format_python_to_PHP
(
python_format_string
):
"""
Given a python datetime format string, attempts to convert it to the nearest PHP datetime format string possible.
"""
python2PHP
=
{
"%a"
:
"D"
,
"%a"
:
"D"
,
"%A"
:
"l"
,
"%b"
:
"M"
,
"%B"
:
"F"
,
"%c"
:
""
,
"%d"
:
"d"
,
"%H"
:
"H"
,
"%I"
:
"h"
,
"%j"
:
"z"
,
"%m"
:
"m"
,
"%M"
:
"i"
,
"%p"
:
"A"
,
"%S"
:
"s"
,
"%U"
:
""
,
"%w"
:
"w"
,
"%W"
:
"W"
,
"%x"
:
""
,
"%X"
:
""
,
"%y"
:
"y"
,
"%Y"
:
"Y"
,
"%Z"
:
"e"
}
php_format_string
=
python_format_string
for
py
,
php
in
python2PHP
.
items
():
php_format_string
=
php_format_string
.
replace
(
py
,
php
)
return
php_format_string
core/views/forms.py
View file @
5b500689
...
...
@@ -3,7 +3,7 @@ from django import forms
from
django.db
import
transaction
from
django.core.exceptions
import
ValidationError
from
django.contrib.auth
import
logout
,
login
,
authenticate
from
django.forms
import
CheckboxSelectMultiple
,
Select
,
DateInput
,
TextInput
from
django.forms
import
CheckboxSelectMultiple
,
Select
,
DateInput
,
TextInput
,
DateTimeInput
from
django.utils.translation
import
ugettext
as
_
from
phonenumber_field.widgets
import
PhoneNumberInternationalFallbackWidget
...
...
@@ -31,6 +31,14 @@ class SelectMultiple(Select):
attrs
=
{
'class'
:
"select_multiple"
}
return
super
(
SelectMultiple
,
self
).
render
(
name
,
value
,
attrs
)
class
SelectDateTime
(
DateTimeInput
):
def
render
(
self
,
name
,
value
,
attrs
=
None
):
if
attrs
:
attrs
[
'class'
]
=
"select_datetime"
else
:
attrs
=
{
'class'
:
"select_datetime"
}
return
super
(
SelectDateTime
,
self
).
render
(
name
,
value
,
attrs
)
class
SelectDate
(
DateInput
):
def
render
(
self
,
name
,
value
,
attrs
=
None
):
if
attrs
:
...
...
locale/fr/LC_MESSAGES/django.mo
View file @
5b500689
No preview for this file type
locale/fr/LC_MESSAGES/django.po
View file @
5b500689
...
...
@@ -6,7 +6,7 @@
msgid
""
msgstr
""
"Report-Msgid-Bugs-To:
\n
"
"POT-Creation-Date: 2016-09-09
01:48
+0200
\n
"
"POT-Creation-Date: 2016-09-09
16:22
+0200
\n
"
"PO-Revision-Date: 2016-07-18
\n
"
"Last-Translator: Skia <skia@libskia.so>
\n
"
"Language-Team: AE info <ae.info@utbm.fr>
\n
"
...
...
@@ -180,7 +180,7 @@ msgstr "Compte"
msgid
"Company"
msgstr
"Entreprise"
#: accounting/models.py:190 sith/settings.py:28
6
sith/settings_sample.py:275
#: accounting/models.py:190 sith/settings.py:28
9
sith/settings_sample.py:275
msgid
"Other"
msgstr
"Autre"
...
...
@@ -304,8 +304,7 @@ msgid "Delete"
msgstr
"Supprimer"
#: accounting/templates/accounting/bank_account_details.jinja:17
#: club/templates/club/club_base.jinja:11 club/views.py:25
#: core/views/user.py:126
#: club/views.py:30 core/views/user.py:126
msgid
"Infos"
msgstr
"Infos"
...
...
@@ -324,8 +323,7 @@ msgstr "Nouveau compte club"
#: accounting/templates/accounting/bank_account_details.jinja:26
#: accounting/templates/accounting/bank_account_list.jinja:21
#: accounting/templates/accounting/club_account_details.jinja:53
#: accounting/templates/accounting/journal_details.jinja:66
#: club/templates/club/club_base.jinja:42 club/views.py:47
#: accounting/templates/accounting/journal_details.jinja:66 club/views.py:52
#: core/templates/core/file.jinja:38 core/templates/core/page.jinja:31
#: core/templates/core/user_tools.jinja:33 core/views/user.py:143
#: counter/templates/counter/counter_list.jinja:17
...
...
@@ -445,6 +443,7 @@ msgid "Nb"
msgstr
"No"
#: accounting/templates/accounting/journal_details.jinja:27
#: club/templates/club/club_sellings.jinja:18
#: core/templates/core/user_account.jinja:16
#: core/templates/core/user_account.jinja:44
#: core/templates/core/user_account.jinja:76
...
...
@@ -567,26 +566,6 @@ msgstr "L'utilisateur est déjà membre de ce club"
msgid
"past member"
msgstr
"Anciens membres"
#: club/templates/club/club_base.jinja:18 club/views.py:31
msgid
"Members"
msgstr
"Membres"
#: club/templates/club/club_base.jinja:26 club/views.py:36
msgid
"Old members"
msgstr
"Anciens membres"
#: club/templates/club/club_base.jinja:34 club/views.py:42
#: core/templates/core/base.jinja:37 core/views/user.py:132
msgid
"Tools"
msgstr
"Outils"
#: club/templates/club/club_base.jinja:50 club/views.py:53
#: counter/templates/counter/counter_list.jinja:20
#: counter/templates/counter/counter_list.jinja:34
#: counter/templates/counter/counter_list.jinja:48
msgid
"Props"
msgstr
"Propriétés"
#: club/templates/club/club_list.jinja:4
#: club/templates/club/club_list.jinja:24
msgid
"Club list"
...
...
@@ -640,6 +619,68 @@ msgstr "Du"
msgid
"To"
msgstr
"Au"
#: club/templates/club/club_sellings.jinja:5 club/views.py:57
#: counter/templates/counter/counter_main.jinja:19
msgid
"Sellings"
msgstr
"Ventes"
#: club/templates/club/club_sellings.jinja:9
msgid
"Show"
msgstr
"Montrer"
#: club/templates/club/club_sellings.jinja:12
msgid
"Quantity: "
msgstr
"Quantité : "
#: club/templates/club/club_sellings.jinja:12
msgid
"units"
msgstr
"unités"
#: club/templates/club/club_sellings.jinja:13
#: counter/templates/counter/counter_click.jinja:67
#: counter/templates/counter/counter_main.jinja:28
#: eboutic/templates/eboutic/eboutic_main.jinja:34
msgid
"Total: "
msgstr
"Total : "
#: club/templates/club/club_sellings.jinja:19 club/views.py:159
#: core/templates/core/user_account.jinja:17
#: core/templates/core/user_account.jinja:45
msgid
"Counter"
msgstr
"Comptoir"
#: club/templates/club/club_sellings.jinja:20
#: core/templates/core/user_account.jinja:18
#: core/templates/core/user_account.jinja:46
msgid
"Barman"
msgstr
"Barman"
#: club/templates/club/club_sellings.jinja:21
#: counter/templates/counter/counter_click.jinja:29
msgid
"Customer"
msgstr
"Client"
#: club/templates/club/club_sellings.jinja:22
#: core/templates/core/user_account.jinja:47
msgid
"Label"
msgstr
"Intitulé"
#: club/templates/club/club_sellings.jinja:23
#: core/templates/core/user_account.jinja:48
msgid
"Quantity"
msgstr
"Quantité"
#: club/templates/club/club_sellings.jinja:24
#: core/templates/core/user_account.jinja:49
msgid
"Total"
msgstr
"Total"
#: club/templates/club/club_sellings.jinja:25
#: core/templates/core/user_account.jinja:20
#: core/templates/core/user_account.jinja:50
msgid
"Payment method"
msgstr
"Méthode de paiement"
#: club/templates/club/club_tools.jinja:4
#: core/templates/core/user_tools.jinja:58
msgid
"Club tools"
...
...
@@ -657,6 +698,36 @@ msgstr "Comptabilité : "
msgid
"Manage launderettes"
msgstr
"Gestion des laveries"
#: club/views.py:36
msgid
"Members"
msgstr
"Membres"
#: club/views.py:41
msgid
"Old members"
msgstr
"Anciens membres"
#: club/views.py:47 core/templates/core/base.jinja:38 core/views/user.py:132
msgid
"Tools"
msgstr
"Outils"
#: club/views.py:63 counter/templates/counter/counter_list.jinja:20
#: counter/templates/counter/counter_list.jinja:34
#: counter/templates/counter/counter_list.jinja:48
msgid
"Props"
msgstr
"Propriétés"
#: club/views.py:157
msgid
"Begin date"
msgstr
"Date de début"
#: club/views.py:158
msgid
"End date"
msgstr
"Date de fin"
#: club/views.py:172
msgid
"Product"
msgstr
"Produit"
#: core/models.py:28
msgid
"meta group status"
msgstr
"status du meta-groupe"
...
...
@@ -1061,65 +1132,65 @@ msgstr "404. Non trouvé"
msgid
"Welcome!"
msgstr
"Bienvenue!"
#: core/templates/core/base.jinja:1
8
#: core/templates/core/base.jinja:1
9
msgid
"Logo"
msgstr
"Logo"
#: core/templates/core/base.jinja:2
1
core/templates/core/login.jinja:4
#: core/templates/core/base.jinja:2
2
core/templates/core/login.jinja:4
#: core/templates/core/password_reset_complete.jinja:5
msgid
"Login"
msgstr
"Connexion"
#: core/templates/core/base.jinja:2
2
core/templates/core/register.jinja:18
#: core/templates/core/base.jinja:2
3
core/templates/core/register.jinja:18
msgid
"Register"
msgstr
"S'enregister"
#: core/templates/core/base.jinja:3
8
#: core/templates/core/base.jinja:3
9
msgid
"Logout"
msgstr
"Déconnexion"
#: core/templates/core/base.jinja:4
0 core/templates/core/base.jinja.py:41
#: core/templates/core/base.jinja:4
1 core/templates/core/base.jinja.py:42
msgid
"Search"
msgstr
"Recherche"
#: core/templates/core/base.jinja:6
3
#: core/templates/core/base.jinja:6
4
msgid
"Main"
msgstr
"Accueil"
#: core/templates/core/base.jinja:6
4
#: core/templates/core/base.jinja:6
5
msgid
"Matmatronch"
msgstr
"Matmatronch"
#: core/templates/core/base.jinja:6
5
#: core/templates/core/base.jinja:6
6
msgid
"Wiki"
msgstr
"Wiki"
#: core/templates/core/base.jinja:6
6
#: core/templates/core/base.jinja:6
7
msgid
"SAS"
msgstr
"SAS"
#: core/templates/core/base.jinja:6
7
#: core/templates/core/base.jinja:6
8
msgid
"Forum"
msgstr
"Forum"
#: core/templates/core/base.jinja:6
8
#: core/templates/core/base.jinja:6
9
msgid
"Services"
msgstr
"Services"
#: core/templates/core/base.jinja:
69
core/templates/core/file.jinja:20
#: core/templates/core/base.jinja:
70
core/templates/core/file.jinja:20
#: core/views/files.py:42
msgid
"Files"
msgstr
"Fichiers"
#: core/templates/core/base.jinja:7
0
#: core/templates/core/base.jinja:7
1
msgid
"Sponsors"
msgstr
"Partenaires"
#: core/templates/core/base.jinja:7
1
#: core/templates/core/base.jinja:7
2
msgid
"Help"
msgstr
"Aide"
#: core/templates/core/base.jinja:10
3
#: core/templates/core/base.jinja:10
4
msgid
"Site made by good people"
msgstr
"Site réalisé par des gens bons"
...
...
@@ -1490,37 +1561,10 @@ msgstr "Compte utilisateur"
msgid
"Refillings"
msgstr
"Rechargements"
#: core/templates/core/user_account.jinja:17
#: core/templates/core/user_account.jinja:45
msgid
"Counter"
msgstr
"Comptoir"
#: core/templates/core/user_account.jinja:18
#: core/templates/core/user_account.jinja:46
msgid
"Barman"
msgstr
"Barman"
#: core/templates/core/user_account.jinja:20
#: core/templates/core/user_account.jinja:50
msgid
"Payment method"
msgstr
"Méthode de paiement"
#: core/templates/core/user_account.jinja:40
msgid
"Account buyings"
msgstr
"Achat sur compte utilisateur"
#: core/templates/core/user_account.jinja:47
msgid
"Label"
msgstr
"Intitulé"
#: core/templates/core/user_account.jinja:48
msgid
"Quantity"
msgstr
"Quantité"
#: core/templates/core/user_account.jinja:49
msgid
"Total"
msgstr
"Total"
#: core/templates/core/user_account.jinja:72
msgid
"Eboutic invoices"
msgstr
"Facture eboutic"
...
...
@@ -1663,8 +1707,6 @@ msgid "Products management"
msgstr
"Gestion des produits"
#: core/templates/core/user_tools.jinja:28
#, fuzzy
#| msgid "Products type management"
msgid
"Product types management"
msgstr
"Gestion des types de produit"
...
...
@@ -1685,24 +1727,24 @@ msgstr "Ajouter un nouveau dossier"
msgid
"Error creating folder %(folder_name)s: %(msg)s"
msgstr
"Erreur de création du dossier %(folder_name)s : %(msg)s"
#: core/views/files.py:61 core/views/forms.py:1
72 core/views/forms.py:176
#: core/views/files.py:61 core/views/forms.py:1
80 core/views/forms.py:184
#, python-format
msgid
"Error uploading file %(file_name)s: %(msg)s"
msgstr
"Erreur d'envoie du fichier %(file_name)s : %(msg)s"