Merge pull request #543 from beingbiplov/feature/edit-or-delete-weight-entry

Feature/edit or delete weight entry
This commit is contained in:
Roland Geider
2020-10-17 14:28:44 +02:00
committed by GitHub
5 changed files with 70 additions and 4 deletions

View File

@@ -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
-----------

View File

@@ -72,6 +72,27 @@
-/-
{% endif %}
</td>
<td>
<div class="btn-group" role="group" >
<div class="btn-group" role="group">
<button id="btnGroupWorkout" type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="{% fa_class 'cog' %}"></span>
{% trans "Options" %}
</button>
<div class="dropdown-menu" aria-labelledby="btnGroupWorkout">
<a href="{% url 'weight:edit' entry_detail.0.id %}" class="dropdown-item wger-modal-dialog">
<span class="{% fa_class 'edit' %}"></span>
{% trans "Edit weight" %}
</a>
<div class="dropdown-divider"></div>
<a href="{% url 'weight:delete' entry_detail.0.id %}" class="dropdown-item wger-modal-dialog">
<span class="{% fa_class 'trash' %}"></span>
{% trans "Delete" %}
</a>
</div>
</div>
</div>
</td>
</tr>
{% endfor %}
</table>

View File

@@ -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

View File

@@ -33,6 +33,10 @@ urlpatterns = [
login_required(views.WeightUpdateView.as_view()),
name='edit'),
url(r'^(?P<pk>\d+)/delete/$',
views.WeightDeleteView.as_view(),
name='delete'),
url(r'^export-csv/$',
views.export_csv,
name='export-csv'),

View File

@@ -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):
"""