diff --git a/rowers/models.py b/rowers/models.py index 4d66ab55..e4e0cfe9 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1715,6 +1715,8 @@ class InstantPlan(models.Model): price = models.IntegerField(default=0, verbose_name="Price in EURO") url = models.CharField(max_length=250, blank=True, verbose_name="Link to page with more information") + private = models.BooleanField(default=False, + verbose_name="Hidden, personal") def __str__(self): # pragma: no cover return self.name @@ -1753,6 +1755,7 @@ class InstantPlanForm(ModelForm): 'hoursperweek', 'sessionsperweek', 'yaml', + 'private' ] diff --git a/rowers/templates/instantplans.html b/rowers/templates/instantplans.html index 17c076b8..b424f226 100644 --- a/rowers/templates/instantplans.html +++ b/rowers/templates/instantplans.html @@ -30,6 +30,9 @@

Created by: {{ plan.owner.first_name }} {{ plan.owner.last_name }}

Plan length: {{ plan.duration }} days

{{ plan.description }}

+ {% if plan.private %} +

Private

+ {% endif %} {% if plan.target %}

What the plan will achieve: {{ plan.target }}

{% endif %} diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 95c8d3aa..a0bbfcb7 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py index 07f5efb7..87fe7bac 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -848,7 +848,12 @@ def rower_register_view(request): weightcategory = form.cleaned_data['weightcategory'] adaptiveclass = form.cleaned_data['adaptiveclass'] nextpage = request.POST['next'] - theuser = User.objects.create_user(username, password=password) + try: + theuser = User.objects.create_user(username, password=password) + except: + messages.error(request, "This user name already exists, choose another one") + url = reverse('rower_register_view') + return HttpResponseRedirect(url) theuser.first_name = first_name theuser.last_name = last_name theuser.email = email diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index 6244efb7..24b84ec4 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -2849,8 +2849,15 @@ def rower_select_instantplan(request, id=0): r = getrequestrower(request, userid=id) # get and present available plans - ips = InstantPlan.objects.all().order_by( - "name", "sessionsperweek", "hoursperweek", "duration", "id") + ips = InstantPlan.objects.filter(private=False) + + if not request.user.is_anonymous: + + ips2 = InstantPlan.objects.filter(owner=request.user) + + ips = ips | ips2 + + ips = ips.order_by("private", "name", "sessionsperweek", "hoursperweek", "duration", "id") breadcrumbs = [ {