mirror of
https://github.com/wger-project/wger.git
synced 2026-02-18 00:17:51 +01:00
Merge pull request #543 from beingbiplov/feature/edit-or-delete-weight-entry
Feature/edit or delete weight entry
This commit is contained in:
@@ -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
|
||||
-----------
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user