diff --git a/AUTHORS.rst b/AUTHORS.rst
index a7fc3f50e..1146adc9e 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -29,6 +29,7 @@ Developers
* Kevin Antonio Rateni Iatauro: https://github.com/WalkingPizza
* Sven - https://github.com/Svn-Sp
* Christopher OConnell - https://github.com/oconnelc
+* Biplov - https://github.com/beingbiplov
Translators
-----------
diff --git a/wger/weight/templates/overview.html b/wger/weight/templates/overview.html
index 6af4479d5..56202f8c9 100644
--- a/wger/weight/templates/overview.html
+++ b/wger/weight/templates/overview.html
@@ -72,6 +72,27 @@
-/-
{% endif %}
+
+
+
+
+
+
+
+ |
{% endfor %}
diff --git a/wger/weight/tests/test_entry.py b/wger/weight/tests/test_entry.py
index c622147d1..ec087f8a5 100644
--- a/wger/weight/tests/test_entry.py
+++ b/wger/weight/tests/test_entry.py
@@ -24,7 +24,8 @@ from wger.core.tests import api_base_test
from wger.core.tests.base_testcase import (
WgerAddTestCase,
WgerEditTestCase,
- WgerTestCase
+ WgerTestCase,
+ WgerDeleteTestCase
)
from wger.utils.constants import TWOPLACES
from wger.weight.models import WeightEntry
@@ -112,6 +113,18 @@ class EditWeightEntryTestCase(WgerEditTestCase):
user_fail = 'admin'
+class DeleteWeightEntryTestCase(WgerDeleteTestCase):
+ """
+ Tests deleting a weight entry
+ """
+
+ object_class = WeightEntry
+ url = 'weight:delete'
+ pk = 1
+ user_success = 'test'
+ user_fail = 'admin'
+
+
class WeightEntryTestCase(api_base_test.ApiBaseResourceTestCase):
"""
Tests the weight entry overview resource
diff --git a/wger/weight/urls.py b/wger/weight/urls.py
index a6a288b92..2e9b99075 100644
--- a/wger/weight/urls.py
+++ b/wger/weight/urls.py
@@ -33,6 +33,10 @@ urlpatterns = [
login_required(views.WeightUpdateView.as_view()),
name='edit'),
+ url(r'^(?P\d+)/delete/$',
+ views.WeightDeleteView.as_view(),
+ name='delete'),
+
url(r'^export-csv/$',
views.export_csv,
name='export-csv'),
diff --git a/wger/weight/views.py b/wger/weight/views.py
index dd2d30a96..94d095ef6 100644
--- a/wger/weight/views.py
+++ b/wger/weight/views.py
@@ -21,6 +21,7 @@ import logging
# Django
from django.contrib.auth.decorators import login_required
+from django.contrib.auth.mixins import LoginRequiredMixin
from django.db.models import (
Max,
Min
@@ -37,7 +38,8 @@ from django.utils.translation import (
)
from django.views.generic import (
CreateView,
- UpdateView
+ UpdateView,
+ DeleteView
)
# Third Party
@@ -46,7 +48,10 @@ from rest_framework.decorators import api_view
from rest_framework.response import Response
# wger
-from wger.utils.generic_views import WgerFormMixin
+from wger.utils.generic_views import (
+ WgerFormMixin,
+ WgerDeleteMixin
+)
from wger.utils.helpers import check_access
from wger.weight import helpers
from wger.weight.forms import WeightForm
@@ -88,7 +93,7 @@ class WeightAddView(WgerFormMixin, CreateView):
return reverse('weight:overview', kwargs={'username': self.object.user.username})
-class WeightUpdateView(WgerFormMixin, UpdateView):
+class WeightUpdateView(WgerFormMixin, LoginRequiredMixin, UpdateView):
"""
Generic view to edit an existing weight entry
"""
@@ -108,6 +113,28 @@ class WeightUpdateView(WgerFormMixin, UpdateView):
return reverse('weight:overview', kwargs={'username': self.object.user.username})
+class WeightDeleteView(WgerDeleteMixin, LoginRequiredMixin, DeleteView):
+ """
+ Generic view to delete a weight entry
+ """
+
+ model = WeightEntry
+ fields = ('weight',)
+
+ messages = ugettext_lazy('Successfully deleted.')
+
+ def get_context_data(self, **kwargs):
+ context = super(WeightDeleteView, self).get_context_data(**kwargs)
+ context['title'] = _('Delete weight entry for the %s') % self.object.date
+ return context
+
+ def get_success_url(self):
+ """
+ Return to overview with username
+ """
+ return reverse('weight:overview', kwargs={'username': self.object.user.username})
+
+
@login_required
def export_csv(request):
"""