Compare commits

...

18 Commits

Author SHA1 Message Date
Commander1024 6f6bd6376d Merge branch 'develop' of mowoe.com:reverend/lostplaces-backend into develop 2020-12-24 17:33:02 +01:00
reverend dc2a703c39 More fuckery 2020-12-24 17:27:48 +01:00
reverend 063777ece4 Merge branch '27-Favorite-System' into develop 2020-12-24 17:27:20 +01:00
reverend 4675e5814f Indention and stupid mistakes fix 2020-12-24 17:26:07 +01:00
reverend 4a43a4bf37 typo 2020-12-24 16:43:43 +01:00
reverend 61cf148417 Displaying favorite icon on detail page 2020-12-24 16:43:33 +01:00
reverend d547ee9db3 favorite partial 2020-12-24 16:43:14 +01:00
reverend c7b699f615 Changed link location in place teaser 2020-12-24 16:43:01 +01:00
reverend 86f95a5dd0 New icon 2020-12-24 16:42:34 +01:00
reverend 916c4b80f7 Filed not required in django admin 2020-12-24 16:42:27 +01:00
reverend b31dc9fc5f Url name changed 2020-12-24 16:41:30 +01:00
reverend 8f048369bf Favorite/Unfavorite Views 2020-12-24 15:56:33 +01:00
reverend f974469996 formatting 2020-12-24 15:56:02 +01:00
reverend dbbd7b0802 rename migrationfile 2020-12-24 15:55:37 +01:00
Commander1024 c7368f5c44 Merge commit '20dd880a11a008ba95cd5aedce59590445430831' into develop 2020-12-24 14:57:09 +01:00
reverend abca946883 Model for favorite system 2020-12-24 14:48:11 +01:00
reverend 20dd880a11 Indention Error 2020-12-19 15:31:13 +01:00
reverend 946c3091c0 Typo "fix" 2020-12-19 15:31:04 +01:00
13 changed files with 347 additions and 105 deletions
@@ -1,12 +1,12 @@
# Generated by Django 3.1.1 on 2020-10-04 19:37
# Edited by reverend
# Generated by Django 3.1.1 on 2020-10-04 19:37
# Edited by reverend
import datetime
from django.db import migrations, models
import django.utils.timezone
from django.utils.timezone import utc
import datetime
from django.db import migrations, models
import django.utils.timezone
from django.utils.timezone import utc
class Migration(migrations.Migration):
class Migration(migrations.Migration):
dependencies = [
('lostplaces', '0001_initial'),
@@ -0,0 +1,22 @@
# Generated by Django 3.1.1 on 2020-10-04 19:37
# Edited by reverend
import datetime
from django.db import migrations, models
import django.utils.timezone
from django.utils.timezone import utc
class Migration(migrations.Migration):
dependencies = [
('lostplaces', '0001_initial'),
]
operations = [
migrations.DeleteModel(
name='Voucher'
),
migrations.DeleteModel(
name='Expireable'
)
]
@@ -1,12 +1,12 @@
# Generated by Django 3.1.1 on 2020-10-04 19:52
# Generated by Django 3.1.1 on 2020-10-04 19:52
from django.db import migrations, models
from django.db import migrations, models
class Migration(migrations.Migration):
class Migration(migrations.Migration):
dependencies = [
('lostplaces', '0002_reomve_vouchers'),
('lostplaces', '0002_remove_vouchers'),
]
operations = [
@@ -14,6 +14,7 @@ from django.db.models.signals import post_save
from django.dispatch import receiver
from lostplaces.models.abstract_models import Expireable
from lostplaces.models.place import Place
class Explorer(models.Model):
"""
@@ -27,6 +28,13 @@ class Explorer(models.Model):
related_name='explorer'
)
favorite_places = models.ManyToManyField(
Place,
related_name='favorite_places',
verbose_name='Explorers favorite places',
blank=True
)
def __str__(self):
return self.user.username
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 108 KiB

@@ -50,9 +50,7 @@
<ul class="LP-PlaceList__List">
{% for place in place_list %}
<li class="LP-PlaceList__Item">
<a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
{% include 'partials/place_teaser.html' with place=place extended=True %}
</a>
</li>
{% endfor %}
</ul>
@@ -21,9 +21,7 @@
<ul class="LP-PlaceGrid__Grid">
{% for place in place_list %}
<li class="LP-PlaceGrid__Item">
<a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
{% include 'partials/place_teaser.html' with place=place%}
</a>
</li>
{% endfor %}
</ul>
@@ -0,0 +1,14 @@
{%load static %}
{% load i18n %}
{% if request.user %}
{% if place in request.user.explorer.favorite_places.all %}
<a href="{% url 'place_unfavorite' place_id=place.id %}" class="LP-Link" title="{% trans 'Remove from favorites' %}">
<img class="LP-Icon" src="{% static '/icons/favourite_filled.svg' %}" />
</a>
{%else%}
<a href="{% url 'place_favorite' place_id=place.id %}" class="LP-Link" title="{% trans 'Save as favorite' %}">
<img class="LP-Icon" src="{% static '/icons/favourite.svg' %}" />
</a>
{% endif %}
{% endif %}
@@ -1,6 +1,7 @@
{%load static %}
<article class="LP-PlaceTeaser {% if extended %} LP-PlaceTeaser--extended{% endif %}">
<a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
<div class="LP-PlaceTeaser__Image">
{% if place.placeimages.all|length > 0 %}
<img class="LP-Image" src="{{ place.placeimages.first.filename.thumbnail.url}}" />
@@ -8,6 +9,7 @@
<img class="LP-Image" src="{% static 'images/missing_image.png' %}" />
{% endif %}
</div>
</a>
<div class="LP-PlaceTeaser__Meta">
<div class="LP-PlaceTeaser__Info">
<span class="LP-PlaceTeaser__Title">
@@ -28,7 +30,7 @@
</div>
<div class="LP-PlaceTeaser__Icons">
<ul class="LP-Icon__List">
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/favourite.svg' %}" /></li>
<li class="LP-Icon__Item">{% include 'partials/icons/place_favorite.html' with place=place%}</li>
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/location.svg' %}" /></li>
<li class="LP-Icon__Item"><img class="LP-Icon" src="{% static '/icons/flag.svg' %}" /></li>
</ul>
@@ -23,7 +23,7 @@
<article class="LP-PlaceDetail">
<header class="LP-PlaceDetail__Header">
<h1 class="LP-Headline">{{ place.name }}</h1>
<h1 class="LP-Headline">{{ place.name }} {% include 'partials/icons/place_favorite.html' %}</h1>
{% if place.placeimages.first.filename.hero.url %}
<figure class="LP-PlaceDetail__Image">
<img src="{{ place.placeimages.first.filename.hero.url }}" class="LP-Image" />
@@ -17,9 +17,7 @@
<ul class="LP-PlaceList__List">
{% for place in place_list %}
<li class="LP-PlaceList__Item">
<a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
{% include 'partials/place_teaser.html' with place=place extended=True %}
</a>
</li>
{% endfor %}
</ul>
+8 -1
View File
@@ -11,6 +11,8 @@ from lostplaces.views import (
PlaceDeleteView,
PlaceTagDeleteView,
PlaceTagSubmitView,
PlaceFavoriteView,
PlaceUnfavoriteView,
PhotoAlbumCreateView,
PhotoAlbumDeleteView,
PlaceImageCreateView,
@@ -36,5 +38,10 @@ urlpatterns = [
path('place/tag/<int:tagged_id>', PlaceTagSubmitView.as_view(), name='place_tag_submit'),
path('place/tag/delete/<int:tagged_id>/<int:tag_id>', PlaceTagDeleteView.as_view(), name='place_tag_delete'),
path('explorer/<int:explorer_id>/', ExplorerProfileView.as_view(), name='explorer_profile')
path('explorer/<int:explorer_id>/', ExplorerProfileView.as_view(), name='explorer_profile'),
path('explorer/favorite/<int:place_id>/', PlaceFavoriteView.as_view(), name='place_favorite'),
path('explorer/unfavorite/<int:place_id>/', PlaceUnfavoriteView.as_view(), name='place_unfavorite')
]
@@ -119,3 +119,35 @@ class PlaceDeleteView(IsAuthenticatedMixin, IsPlaceSubmitterMixin, DeleteView):
def get_place(self):
return self.get_object()
class PlaceFavoriteView(IsAuthenticatedMixin, View):
def get(self, request, place_id):
place = get_object_or_404(Place, id=place_id)
if request.user is not None:
request.user.explorer.favorite_places.add(place)
request.user.explorer.save()
referer = request.META.get('HTTP_REFERER')
if referer is not None:
return redirect(referer)
else:
return redirect(
reverse_lazy('place_detail', kwargs={'pk': place.pk})
)
class PlaceUnfavoriteView(IsAuthenticatedMixin, View):
def get(self, request, place_id):
place = get_object_or_404(Place, id=place_id)
if request.user is not None:
request.user.explorer.favorite_places.remove(place)
request.user.explorer.save()
referer = request.META.get('HTTP_REFERER')
if referer is not None:
return redirect(referer)
else:
return redirect(
reverse_lazy('place_detail', kwargs={'pk': place.pk})
)