Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
AE
Sith
Commits
b69c3a67
Commit
b69c3a67
authored
Aug 18, 2016
by
Skia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve and fix user accounts
parent
05bd177a
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
73 additions
and
9 deletions
+73
-9
core/templates/core/delete_confirm.jinja
core/templates/core/delete_confirm.jinja
+6
-0
core/templates/core/file_delete_confirm.jinja
core/templates/core/file_delete_confirm.jinja
+6
-0
core/templates/core/user_account.jinja
core/templates/core/user_account.jinja
+6
-0
counter/models.py
counter/models.py
+20
-5
counter/urls.py
counter/urls.py
+2
-0
counter/views.py
counter/views.py
+23
-0
migrate.py
migrate.py
+10
-4
No files found.
core/templates/core/delete_confirm.jinja
View file @
b69c3a67
{%
extends
"core/base.jinja"
%}
{%
extends
"core/base.jinja"
%}
{%
block
title
%}
{%
trans
%}
Delete confirmation
{%
endtrans
%}
{%
endblock
%}
{%
block
content
%}
{%
block
content
%}
<h2>
{%
trans
%}
Delete confirmation
{%
endtrans
%}
</h2>
<h2>
{%
trans
%}
Delete confirmation
{%
endtrans
%}
</h2>
<form
action=
""
method=
"post"
>
{%
csrf_token
%}
<form
action=
""
method=
"post"
>
{%
csrf_token
%}
<p>
{%
trans
obj
=
object
%}
Are you sure you want to delete "
{{
obj
}}
"?
{%
endtrans
%}
</p>
<p>
{%
trans
obj
=
object
%}
Are you sure you want to delete "
{{
obj
}}
"?
{%
endtrans
%}
</p>
<input
type=
"submit"
value=
"
{%
trans
%}
Confirm
{%
endtrans
%}
"
/>
<input
type=
"submit"
value=
"
{%
trans
%}
Confirm
{%
endtrans
%}
"
/>
</form>
<form
method=
"GET"
action=
"javascript:history.back();"
>
<input
type=
"submit"
name=
"cancel"
value=
"
{%
trans
%}
Cancel
{%
endtrans
%}
"
/>
<input
type=
"submit"
name=
"cancel"
value=
"
{%
trans
%}
Cancel
{%
endtrans
%}
"
/>
</form>
</form>
{%
endblock
%}
{%
endblock
%}
...
...
core/templates/core/file_delete_confirm.jinja
View file @
b69c3a67
{%
extends
"core/file.jinja"
%}
{%
extends
"core/file.jinja"
%}
{%
block
title
%}
{%
trans
%}
Delete confirmation
{%
endtrans
%}
{%
endblock
%}
{%
block
file
%}
{%
block
file
%}
<h2>
{%
trans
%}
Delete confirmation
{%
endtrans
%}
</h2>
<h2>
{%
trans
%}
Delete confirmation
{%
endtrans
%}
</h2>
<form
action=
""
method=
"post"
>
{%
csrf_token
%}
<form
action=
""
method=
"post"
>
{%
csrf_token
%}
<p>
{%
trans
obj
=
object
%}
Are you sure you want to delete "
{{
obj
}}
"?
{%
endtrans
%}
</p>
<p>
{%
trans
obj
=
object
%}
Are you sure you want to delete "
{{
obj
}}
"?
{%
endtrans
%}
</p>
<input
type=
"submit"
value=
"
{%
trans
%}
Confirm
{%
endtrans
%}
"
/>
<input
type=
"submit"
value=
"
{%
trans
%}
Confirm
{%
endtrans
%}
"
/>
</form>
<form
method=
"GET"
action=
"javascript:history.back();"
>
<input
type=
"submit"
name=
"cancel"
value=
"
{%
trans
%}
Cancel
{%
endtrans
%}
"
/>
<input
type=
"submit"
name=
"cancel"
value=
"
{%
trans
%}
Cancel
{%
endtrans
%}
"
/>
</form>
</form>
{%
endblock
%}
{%
endblock
%}
...
...
core/templates/core/user_account.jinja
View file @
b69c3a67
...
@@ -28,6 +28,9 @@
...
@@ -28,6 +28,9 @@
<td><a
href=
"
{{
i.operator.get_absolute_url
()
}}
"
>
{{
i.operator.get_display_name
()
}}
</a></td>
<td><a
href=
"
{{
i.operator.get_absolute_url
()
}}
"
>
{{
i.operator.get_display_name
()
}}
</a></td>
<td>
{{
i.amount
}}
€
</td>
<td>
{{
i.amount
}}
€
</td>
<td>
{{
i.get_payment_method_display
()
}}
</td>
<td>
{{
i.get_payment_method_display
()
}}
</td>
{%
if
i.is_owned_by
(
user
)
%}
<td><a
href=
"
{{
url
(
'counter:refilling_delete'
,
refilling_id
=
i.id
)
}}
"
>
Delete
</a></td>
{%
endif
%}
</tr>
</tr>
{%
endfor
%}
{%
endfor
%}
</tbody>
</tbody>
...
@@ -57,6 +60,9 @@
...
@@ -57,6 +60,9 @@
<td>
{{
i.quantity
}}
</td>
<td>
{{
i.quantity
}}
</td>
<td>
{{
i.quantity
*
i.unit_price
}}
€
</td>
<td>
{{
i.quantity
*
i.unit_price
}}
€
</td>
<td>
{{
i.get_payment_method_display
()
}}
</td>
<td>
{{
i.get_payment_method_display
()
}}
</td>
{%
if
i.is_owned_by
(
user
)
%}
<td><a
href=
"
{{
url
(
'counter:selling_delete'
,
selling_id
=
i.id
)
}}
"
>
Delete
</a></td>
{%
endif
%}
</tr>
</tr>
{%
endfor
%}
{%
endfor
%}
</tbody>
</tbody>
...
...
counter/models.py
View file @
b69c3a67
...
@@ -5,8 +5,7 @@ from django.conf import settings
...
@@ -5,8 +5,7 @@ from django.conf import settings
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
from
django.forms
import
ValidationError
from
django.forms
import
ValidationError
from
datetime
import
timedelta
,
datetime
from
datetime
import
timedelta
from
pytz
import
timezone
import
random
import
random
import
string
import
string
...
@@ -188,7 +187,7 @@ class Counter(models.Model):
...
@@ -188,7 +187,7 @@ class Counter(models.Model):
def
get_random_barman
(
self
):
def
get_random_barman
(
self
):
bl
=
self
.
get_barmen_list
()
bl
=
self
.
get_barmen_list
()
return
bl
[
randrange
(
0
,
len
(
bl
))]
return
bl
[
random
.
randrange
(
0
,
len
(
bl
))]
def
is_open
(
self
):
def
is_open
(
self
):
response
=
False
response
=
False
...
@@ -220,12 +219,20 @@ class Refilling(models.Model):
...
@@ -220,12 +219,20 @@ class Refilling(models.Model):
def
__str__
(
self
):
def
__str__
(
self
):
return
"Refilling: %.2f for %s"
%
(
self
.
amount
,
self
.
customer
.
user
.
get_display_name
())
return
"Refilling: %.2f for %s"
%
(
self
.
amount
,
self
.
customer
.
user
.
get_display_name
())
def
is_owned_by
(
self
,
user
):
return
user
.
can_edit
(
self
.
counter
)
and
self
.
payment_method
!=
"CARD"
# def get_absolute_url(self):
# def get_absolute_url(self):
# return reverse('counter:details', kwargs={'counter_id': self.id})
# return reverse('counter:details', kwargs={'counter_id': self.id})
def
delete
(
self
,
*
args
,
**
kwargs
):
self
.
customer
.
amount
-=
self
.
amount
self
.
customer
.
save
()
super
(
Refilling
,
self
).
delete
(
*
args
,
**
kwargs
)
def
save
(
self
,
*
args
,
**
kwargs
):
def
save
(
self
,
*
args
,
**
kwargs
):
if
not
self
.
date
:
if
not
self
.
date
:
self
.
date
=
datetime
.
now
().
replace
(
tzinfo
=
timezone
(
settings
.
TIME_ZONE
)
)
self
.
date
=
timezone
.
now
(
)
self
.
full_clean
()
self
.
full_clean
()
if
not
self
.
is_validated
:
if
not
self
.
is_validated
:
self
.
customer
.
amount
+=
self
.
amount
self
.
customer
.
amount
+=
self
.
amount
...
@@ -257,9 +264,17 @@ class Selling(models.Model):
...
@@ -257,9 +264,17 @@ class Selling(models.Model):
return
"Selling: %d x %s (%f) for %s"
%
(
self
.
quantity
,
self
.
label
,
return
"Selling: %d x %s (%f) for %s"
%
(
self
.
quantity
,
self
.
label
,
self
.
quantity
*
self
.
unit_price
,
self
.
customer
.
user
.
get_display_name
())
self
.
quantity
*
self
.
unit_price
,
self
.
customer
.
user
.
get_display_name
())
def
is_owned_by
(
self
,
user
):
return
user
.
can_edit
(
self
.
counter
)
and
self
.
payment_method
!=
"CARD"
def
delete
(
self
,
*
args
,
**
kwargs
):
self
.
customer
.
amount
+=
self
.
quantity
*
self
.
unit_price
self
.
customer
.
save
()
super
(
Selling
,
self
).
delete
(
*
args
,
**
kwargs
)
def
save
(
self
,
*
args
,
**
kwargs
):
def
save
(
self
,
*
args
,
**
kwargs
):
if
not
self
.
date
:
if
not
self
.
date
:
self
.
date
=
datetime
.
now
().
replace
(
tzinfo
=
timezone
(
settings
.
TIME_ZONE
)
)
self
.
date
=
timezone
.
now
(
)
self
.
full_clean
()
self
.
full_clean
()
if
not
self
.
is_validated
:
if
not
self
.
is_validated
:
self
.
customer
.
amount
-=
self
.
quantity
*
self
.
unit_price
self
.
customer
.
amount
-=
self
.
quantity
*
self
.
unit_price
...
...
counter/urls.py
View file @
b69c3a67
...
@@ -17,6 +17,8 @@ urlpatterns = [
...
@@ -17,6 +17,8 @@ urlpatterns = [
url
(
r
'^admin/producttype/list$'
,
ProductTypeListView
.
as_view
(),
name
=
'producttype_list'
),
url
(
r
'^admin/producttype/list$'
,
ProductTypeListView
.
as_view
(),
name
=
'producttype_list'
),
url
(
r
'^admin/producttype/create$'
,
ProductTypeCreateView
.
as_view
(),
name
=
'new_producttype'
),
url
(
r
'^admin/producttype/create$'
,
ProductTypeCreateView
.
as_view
(),
name
=
'new_producttype'
),
url
(
r
'^admin/producttype/(?P<type_id>[0-9]+)$'
,
ProductTypeEditView
.
as_view
(),
name
=
'producttype_edit'
),
url
(
r
'^admin/producttype/(?P<type_id>[0-9]+)$'
,
ProductTypeEditView
.
as_view
(),
name
=
'producttype_edit'
),
url
(
r
'^admin/selling/(?P<selling_id>[0-9]+)/delete$'
,
SellingDeleteView
.
as_view
(),
name
=
'selling_delete'
),
url
(
r
'^admin/refilling/(?P<refilling_id>[0-9]+)/delete$'
,
RefillingDeleteView
.
as_view
(),
name
=
'refilling_delete'
),
]
]
counter/views.py
View file @
b69c3a67
...
@@ -410,3 +410,26 @@ class ProductEditView(CanEditPropMixin, UpdateView):
...
@@ -410,3 +410,26 @@ class ProductEditView(CanEditPropMixin, UpdateView):
template_name
=
'core/edit.jinja'
template_name
=
'core/edit.jinja'
# TODO: add management of the 'counters' ForeignKey
# TODO: add management of the 'counters' ForeignKey
class
RefillingDeleteView
(
CanEditPropMixin
,
DeleteView
):
"""
Delete a refilling (for the admins)
"""
model
=
Refilling
pk_url_kwarg
=
"refilling_id"
template_name
=
'core/delete_confirm.jinja'
def
get_success_url
(
self
):
return
reverse_lazy
(
'core:user_account'
,
kwargs
=
{
'user_id'
:
self
.
object
.
customer
.
user
.
id
})
class
SellingDeleteView
(
CanEditPropMixin
,
DeleteView
):
"""
Delete a selling (for the admins)
"""
model
=
Selling
pk_url_kwarg
=
"selling_id"
template_name
=
'core/delete_confirm.jinja'
def
get_success_url
(
self
):
return
reverse_lazy
(
'core:user_account'
,
kwargs
=
{
'user_id'
:
self
.
object
.
customer
.
user
.
id
})
migrate.py
View file @
b69c3a67
...
@@ -337,6 +337,15 @@ def migrate_counters():
...
@@ -337,6 +337,15 @@ def migrate_counters():
print
(
"FAIL to migrate counter %s: %s"
%
(
r
[
'id_comptoir'
],
repr
(
e
)))
print
(
"FAIL to migrate counter %s: %s"
%
(
r
[
'id_comptoir'
],
repr
(
e
)))
cur
.
close
()
cur
.
close
()
def
reset_customer_amount
():
Refilling
.
objects
.
all
().
delete
()
Selling
.
objects
.
all
().
delete
()
Invoice
.
objects
.
all
().
delete
()
for
c
in
Customer
.
objects
.
all
():
c
.
amount
=
0
c
.
save
()
print
(
"Customer amount reset"
)
def
migrate_refillings
():
def
migrate_refillings
():
BANK
=
{
BANK
=
{
0
:
"OTHER"
,
0
:
"OTHER"
,
...
@@ -359,10 +368,6 @@ def migrate_refillings():
...
@@ -359,10 +368,6 @@ def migrate_refillings():
"""
)
"""
)
Refilling
.
objects
.
filter
(
payment_method
=
"SITH_ACCOUNT"
).
delete
()
Refilling
.
objects
.
filter
(
payment_method
=
"SITH_ACCOUNT"
).
delete
()
print
(
"Sith account refillings deleted"
)
print
(
"Sith account refillings deleted"
)
for
c
in
Customer
.
objects
.
all
():
c
.
amount
=
0
c
.
save
()
print
(
"Customer amount reset"
)
fail
=
100
fail
=
100
root_cust
=
Customer
.
objects
.
filter
(
user__id
=
0
).
first
()
root_cust
=
Customer
.
objects
.
filter
(
user__id
=
0
).
first
()
mde
=
Counter
.
objects
.
filter
(
id
=
1
).
first
()
mde
=
Counter
.
objects
.
filter
(
id
=
1
).
first
()
...
@@ -546,6 +551,7 @@ def main():
...
@@ -546,6 +551,7 @@ def main():
# migrate_typeproducts()
# migrate_typeproducts()
# migrate_products()
# migrate_products()
# migrate_products_to_counter()
# migrate_products_to_counter()
reset_customer_amount
()
migrate_invoices
()
migrate_invoices
()
migrate_refillings
()
migrate_refillings
()
migrate_sellings
()
migrate_sellings
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment