Unified indentation using 4 spacec according to PEP8.
This commit is contained in:
		@@ -8,43 +8,43 @@ from django.contrib.auth.forms import UserCreationForm, UserChangeForm
 | 
			
		||||
from .models import Explorer, Place, PlaceImage, Voucher
 | 
			
		||||
 | 
			
		||||
class ExplorerCreationForm(UserCreationForm):
 | 
			
		||||
	class Meta:
 | 
			
		||||
		model = Explorer
 | 
			
		||||
		fields = ('username', 'email')
 | 
			
		||||
	voucher = forms.CharField(max_length=10, help_text='The Voucher you got from an administrator')
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = Explorer
 | 
			
		||||
        fields = ('username', 'email')
 | 
			
		||||
    voucher = forms.CharField(max_length=10, help_text='The Voucher you got from an administrator')
 | 
			
		||||
 | 
			
		||||
	def is_valid(self):
 | 
			
		||||
		super().is_valid()
 | 
			
		||||
		sumitted_voucher = self.cleaned_data.get('voucher')
 | 
			
		||||
		try:
 | 
			
		||||
			fetched_voucher = Voucher.objects.get(code=sumitted_voucher)
 | 
			
		||||
		except Voucher.DoesNotExist:
 | 
			
		||||
			self.add_error('voucher', 'Invalid voucher')
 | 
			
		||||
			return False
 | 
			
		||||
    def is_valid(self):
 | 
			
		||||
        super().is_valid()
 | 
			
		||||
        sumitted_voucher = self.cleaned_data.get('voucher')
 | 
			
		||||
        try:
 | 
			
		||||
            fetched_voucher = Voucher.objects.get(code=sumitted_voucher)
 | 
			
		||||
        except Voucher.DoesNotExist:
 | 
			
		||||
            self.add_error('voucher', 'Invalid voucher')
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
		fetched_voucher.delete()
 | 
			
		||||
		return True
 | 
			
		||||
        fetched_voucher.delete()
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
class ExplorerChangeForm(UserChangeForm):
 | 
			
		||||
	class Meta:
 | 
			
		||||
		model = Explorer
 | 
			
		||||
		fields = ('username', 'email')
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = Explorer
 | 
			
		||||
        fields = ('username', 'email')
 | 
			
		||||
 | 
			
		||||
class PlaceForm(forms.ModelForm):
 | 
			
		||||
	class Meta:
 | 
			
		||||
		model = Place
 | 
			
		||||
		fields = '__all__'
 | 
			
		||||
		exclude = ['submitted_by']
 | 
			
		||||
		
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = Place
 | 
			
		||||
        fields = '__all__'
 | 
			
		||||
        exclude = ['submitted_by']
 | 
			
		||||
        
 | 
			
		||||
class PlaceImageCreateForm(forms.ModelForm):
 | 
			
		||||
	class Meta:
 | 
			
		||||
		model = PlaceImage
 | 
			
		||||
		fields = ['filename']
 | 
			
		||||
		widgets = {
 | 
			
		||||
			'filename': forms.ClearableFileInput(attrs={'multiple': True})
 | 
			
		||||
		}
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = PlaceImage
 | 
			
		||||
        fields = ['filename']
 | 
			
		||||
        widgets = {
 | 
			
		||||
            'filename': forms.ClearableFileInput(attrs={'multiple': True})
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
	def __init__(self, *args, **kwargs):
 | 
			
		||||
		super().__init__(*args, **kwargs)
 | 
			
		||||
    def __init__(self, *args, **kwargs):
 | 
			
		||||
        super().__init__(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
		self.fields['filename'].required = False
 | 
			
		||||
        self.fields['filename'].required = False
 | 
			
		||||
 
 | 
			
		||||
@@ -14,115 +14,115 @@ from easy_thumbnails.fields import ThumbnailerImageField
 | 
			
		||||
# Create your models here.
 | 
			
		||||
 | 
			
		||||
class Explorer(AbstractUser):
 | 
			
		||||
	"""
 | 
			
		||||
	Custom user model
 | 
			
		||||
	Addtional fields wbd
 | 
			
		||||
	"""
 | 
			
		||||
    """
 | 
			
		||||
    Custom user model
 | 
			
		||||
    Addtional fields wbd
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
	def __str__(self):
 | 
			
		||||
		return self.username
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return self.username
 | 
			
		||||
 | 
			
		||||
class Voucher(models.Model):
 | 
			
		||||
	"""
 | 
			
		||||
	Vouchers are authorization tokens to allow the registration of new users.
 | 
			
		||||
	A voucher has a code, a creation and a deletion date, which are all positional.
 | 
			
		||||
	Creation date is being set automatically during voucher creation. 
 | 
			
		||||
	"""
 | 
			
		||||
    """
 | 
			
		||||
    Vouchers are authorization tokens to allow the registration of new users.
 | 
			
		||||
    A voucher has a code, a creation and a deletion date, which are all positional.
 | 
			
		||||
    Creation date is being set automatically during voucher creation. 
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
	code = models.CharField(unique=True, max_length=10)
 | 
			
		||||
	created = models.DateTimeField(auto_now_add=True)
 | 
			
		||||
	expires = models.DateField()
 | 
			
		||||
    code = models.CharField(unique=True, max_length=10)
 | 
			
		||||
    created = models.DateTimeField(auto_now_add=True)
 | 
			
		||||
    expires = models.DateField()
 | 
			
		||||
 | 
			
		||||
	def __str__(self):
 | 
			
		||||
		return "Voucher " + str(self.pk)
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return "Voucher " + str(self.pk)
 | 
			
		||||
 | 
			
		||||
class Place (models.Model):
 | 
			
		||||
	"""
 | 
			
		||||
	Place defines a lost place (location, name, description etc.).
 | 
			
		||||
	"""
 | 
			
		||||
    """
 | 
			
		||||
    Place defines a lost place (location, name, description etc.).
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
	name = models.CharField(max_length=50)
 | 
			
		||||
	submitted_when = models.DateTimeField(auto_now_add=True, null=True)
 | 
			
		||||
	submitted_by = models.ForeignKey(
 | 
			
		||||
		Explorer,
 | 
			
		||||
		on_delete=models.SET_NULL,
 | 
			
		||||
		null=True,
 | 
			
		||||
		blank=True, 
 | 
			
		||||
		related_name='places'
 | 
			
		||||
	)
 | 
			
		||||
	location = models.CharField(max_length=50)
 | 
			
		||||
	latitude = models.FloatField()
 | 
			
		||||
	longitude = models.FloatField()
 | 
			
		||||
	description = models.TextField()
 | 
			
		||||
    name = models.CharField(max_length=50)
 | 
			
		||||
    submitted_when = models.DateTimeField(auto_now_add=True, null=True)
 | 
			
		||||
    submitted_by = models.ForeignKey(
 | 
			
		||||
        Explorer,
 | 
			
		||||
        on_delete=models.SET_NULL,
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True, 
 | 
			
		||||
        related_name='places'
 | 
			
		||||
    )
 | 
			
		||||
    location = models.CharField(max_length=50)
 | 
			
		||||
    latitude = models.FloatField()
 | 
			
		||||
    longitude = models.FloatField()
 | 
			
		||||
    description = models.TextField()
 | 
			
		||||
 | 
			
		||||
	def __str__(self):
 | 
			
		||||
		return self.name
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return self.name
 | 
			
		||||
 | 
			
		||||
def generate_image_upload_path(instance, filename):
 | 
			
		||||
	"""
 | 
			
		||||
	Callback for generating path for uploaded images.
 | 
			
		||||
	"""
 | 
			
		||||
    """
 | 
			
		||||
    Callback for generating path for uploaded images.
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
	return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1]
 | 
			
		||||
    return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1]
 | 
			
		||||
 | 
			
		||||
class PlaceImage (models.Model):
 | 
			
		||||
	"""
 | 
			
		||||
	PlaceImage defines an image file object that points to a file in uploads/.
 | 
			
		||||
	Intermediate image sizes are generated as defined in SIZES.
 | 
			
		||||
	PlaceImage references a Place to which it belongs.
 | 
			
		||||
	"""
 | 
			
		||||
		
 | 
			
		||||
	description = models.TextField(blank=True)
 | 
			
		||||
	filename = ThumbnailerImageField(upload_to=generate_image_upload_path)
 | 
			
		||||
	place = models.ForeignKey(
 | 
			
		||||
		Place,
 | 
			
		||||
		on_delete=models.CASCADE,
 | 
			
		||||
		related_name='images'
 | 
			
		||||
	)
 | 
			
		||||
	submitted_by = models.ForeignKey(
 | 
			
		||||
		Explorer,
 | 
			
		||||
		on_delete=models.SET_NULL,
 | 
			
		||||
		null=True,
 | 
			
		||||
		blank=True, 
 | 
			
		||||
		related_name='images'
 | 
			
		||||
	)
 | 
			
		||||
    """
 | 
			
		||||
    PlaceImage defines an image file object that points to a file in uploads/.
 | 
			
		||||
    Intermediate image sizes are generated as defined in SIZES.
 | 
			
		||||
    PlaceImage references a Place to which it belongs.
 | 
			
		||||
    """
 | 
			
		||||
        
 | 
			
		||||
    description = models.TextField(blank=True)
 | 
			
		||||
    filename = ThumbnailerImageField(upload_to=generate_image_upload_path)
 | 
			
		||||
    place = models.ForeignKey(
 | 
			
		||||
        Place,
 | 
			
		||||
        on_delete=models.CASCADE,
 | 
			
		||||
        related_name='images'
 | 
			
		||||
    )
 | 
			
		||||
    submitted_by = models.ForeignKey(
 | 
			
		||||
        Explorer,
 | 
			
		||||
        on_delete=models.SET_NULL,
 | 
			
		||||
        null=True,
 | 
			
		||||
        blank=True, 
 | 
			
		||||
        related_name='images'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
	def __str__(self):
 | 
			
		||||
		"""
 | 
			
		||||
		Returning the name of the corresponding place + id 
 | 
			
		||||
		of this image as textual represntation of this instance
 | 
			
		||||
		"""
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        """
 | 
			
		||||
        Returning the name of the corresponding place + id 
 | 
			
		||||
        of this image as textual represntation of this instance
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
		return ' '.join([self.place.name, str(self.pk)])
 | 
			
		||||
        return ' '.join([self.place.name, str(self.pk)])
 | 
			
		||||
 | 
			
		||||
# These two auto-delete files from filesystem when they are unneeded:
 | 
			
		||||
 | 
			
		||||
@receiver(models.signals.post_delete, sender=PlaceImage)
 | 
			
		||||
def auto_delete_file_on_delete(sender, instance, **kwargs):
 | 
			
		||||
	"""
 | 
			
		||||
	Deletes file from filesystem
 | 
			
		||||
	when corresponding `PlaceImage` object is deleted.
 | 
			
		||||
	"""
 | 
			
		||||
	if instance.filename:
 | 
			
		||||
		if os.path.isfile(instance.filename.path):
 | 
			
		||||
			os.remove(instance.filename.path)
 | 
			
		||||
    """
 | 
			
		||||
    Deletes file from filesystem
 | 
			
		||||
    when corresponding `PlaceImage` object is deleted.
 | 
			
		||||
    """
 | 
			
		||||
    if instance.filename:
 | 
			
		||||
        if os.path.isfile(instance.filename.path):
 | 
			
		||||
            os.remove(instance.filename.path)
 | 
			
		||||
 | 
			
		||||
@receiver(models.signals.pre_save, sender=PlaceImage)
 | 
			
		||||
def auto_delete_file_on_change(sender, instance, **kwargs):
 | 
			
		||||
	"""
 | 
			
		||||
	Deletes old file from filesystem
 | 
			
		||||
	when corresponding `PlaceImage` object is updated
 | 
			
		||||
	with new file.
 | 
			
		||||
	"""
 | 
			
		||||
	if not instance.pk:
 | 
			
		||||
		return False
 | 
			
		||||
    """
 | 
			
		||||
    Deletes old file from filesystem
 | 
			
		||||
    when corresponding `PlaceImage` object is updated
 | 
			
		||||
    with new file.
 | 
			
		||||
    """
 | 
			
		||||
    if not instance.pk:
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
	try:
 | 
			
		||||
		old_file = PlaceImage.objects.get(pk=instance.pk).filename
 | 
			
		||||
	except PlaceImage.DoesNotExist:
 | 
			
		||||
		return False
 | 
			
		||||
    try:
 | 
			
		||||
        old_file = PlaceImage.objects.get(pk=instance.pk).filename
 | 
			
		||||
    except PlaceImage.DoesNotExist:
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
	new_file = instance.filename
 | 
			
		||||
	if not old_file == new_file:
 | 
			
		||||
		if os.path.isfile(old_file.path):
 | 
			
		||||
			os.remove(old_file.path)
 | 
			
		||||
    new_file = instance.filename
 | 
			
		||||
    if not old_file == new_file:
 | 
			
		||||
        if os.path.isfile(old_file.path):
 | 
			
		||||
            os.remove(old_file.path)
 | 
			
		||||
 
 | 
			
		||||
@@ -5,43 +5,43 @@
 | 
			
		||||
 | 
			
		||||
{% block maincontent %}
 | 
			
		||||
<form class="LP-Form" method="POST" enctype="multipart/form-data">
 | 
			
		||||
	<fieldset class="LP-Form__Fieldset">
 | 
			
		||||
		<legend class="LP-Form__Legend">Place erstellen</legend>
 | 
			
		||||
		{% csrf_token %}
 | 
			
		||||
		<div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_form.name %}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_form.location %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
    <fieldset class="LP-Form__Fieldset">
 | 
			
		||||
        <legend class="LP-Form__Legend">Place erstellen</legend>
 | 
			
		||||
        {% csrf_token %}
 | 
			
		||||
        <div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_form.name %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_form.location %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_form.latitude %}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_form.longitude %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_form.latitude %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_form.longitude %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_form.description %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_form.description %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=place_image_form.filename %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=place_image_form.filename %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<input type="submit" class="LP-Button" value="Abschicken"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</fieldset>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <input type="submit" class="LP-Button" value="Abschicken"/>
 | 
			
		||||
        </div>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
<div class="LP-PlaceGrid">
 | 
			
		||||
    <h1 class="LP-Headline LP-Headline">Explore the latest locations</h1>
 | 
			
		||||
    <ul class="LP-PlaceGrid__Grid">
 | 
			
		||||
		{% for place in place_list %}
 | 
			
		||||
        {% for place in place_list %}
 | 
			
		||||
        <li class="LP-PlaceGrid__Item">
 | 
			
		||||
            <a href="{% url 'place_detail' pk=place.pk %}" class="LP-Link">
 | 
			
		||||
                <article class="LP-PlaceTeaser">
 | 
			
		||||
@@ -35,10 +35,10 @@
 | 
			
		||||
                            </ul>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
				</article>
 | 
			
		||||
			</a>
 | 
			
		||||
		</li>
 | 
			
		||||
		{% endfor %}
 | 
			
		||||
                </article>
 | 
			
		||||
            </a>
 | 
			
		||||
        </li>
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
    </ul>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +1,16 @@
 | 
			
		||||
{% load widget_tweaks %}
 | 
			
		||||
 | 
			
		||||
<div class="LP-Input {% if field.errors %} LP-Input--error {% endif %}">
 | 
			
		||||
	<label for="{{field.id_for_label}}" class="LP-Input__Label">{{field.label}}</label>
 | 
			
		||||
	{% render_field field class="LP-Input__Field"%}
 | 
			
		||||
    <label for="{{field.id_for_label}}" class="LP-Input__Label">{{field.label}}</label>
 | 
			
		||||
    {% render_field field class="LP-Input__Field"%}
 | 
			
		||||
 | 
			
		||||
	<span class="LP-Input__Message">
 | 
			
		||||
		{% if field.errors %} 
 | 
			
		||||
			{% for error in field.errors%}
 | 
			
		||||
				{{error}}
 | 
			
		||||
			{% endfor %}
 | 
			
		||||
		{% elif field.help_text%}
 | 
			
		||||
			{{ field.help_text }}
 | 
			
		||||
		{% endif %}
 | 
			
		||||
	</span>
 | 
			
		||||
    <span class="LP-Input__Message">
 | 
			
		||||
        {% if field.errors %} 
 | 
			
		||||
            {% for error in field.errors%}
 | 
			
		||||
                {{error}}
 | 
			
		||||
            {% endfor %}
 | 
			
		||||
        {% elif field.help_text%}
 | 
			
		||||
            {{ field.help_text }}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
    </span>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -11,8 +11,8 @@
 | 
			
		||||
<article class="LP-PlaceOverview">
 | 
			
		||||
    <div class="LP-PlaceOverview__Info">
 | 
			
		||||
        <div class="LP-PlaceOveriew__Image">
 | 
			
		||||
			<img src="{{ place.images.first.filename.hero.url }}" class="LP-Image" /> 
 | 
			
		||||
		</div>
 | 
			
		||||
            <img src="{{ place.images.first.filename.hero.url }}" class="LP-Image" /> 
 | 
			
		||||
        </div>
 | 
			
		||||
        <article class="LP-PlaceOverView__Description">
 | 
			
		||||
            <div class="LP-TextSection">
 | 
			
		||||
                <h1 class="LP-Headline LP-Headline">{{place.name}}</h1>
 | 
			
		||||
@@ -26,26 +26,26 @@
 | 
			
		||||
            <div class="LP-Content">
 | 
			
		||||
                <div class="LP-TagList">
 | 
			
		||||
                    <ul class="LP-TagList__List">
 | 
			
		||||
						<li class="LP-TagList__Item">
 | 
			
		||||
							<div class="LP-Tag">
 | 
			
		||||
								<p class="LP-Paragraph LP-Paragraph">Kamera</p>
 | 
			
		||||
							</div>
 | 
			
		||||
						</li>
 | 
			
		||||
						<li class="LP-TagList__Item">
 | 
			
		||||
							<div class="LP-Tag">
 | 
			
		||||
								<p class="LP-Paragraph LP-Paragraph">Wachhund</p>
 | 
			
		||||
							</div>
 | 
			
		||||
						</li>
 | 
			
		||||
						<li class="LP-TagList__Item">
 | 
			
		||||
							<div class="LP-Tag">
 | 
			
		||||
								<p class="LP-Paragraph LP-Paragraph">Zaun</p>
 | 
			
		||||
							</div>
 | 
			
		||||
						</li>
 | 
			
		||||
						<li class="LP-TagList__Item">
 | 
			
		||||
							<div class="LP-Tag">
 | 
			
		||||
								<p class="LP-Paragraph LP-Paragraph">Security</p>
 | 
			
		||||
							</div>
 | 
			
		||||
						</li>
 | 
			
		||||
                        <li class="LP-TagList__Item">
 | 
			
		||||
                            <div class="LP-Tag">
 | 
			
		||||
                                <p class="LP-Paragraph LP-Paragraph">Kamera</p>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </li>
 | 
			
		||||
                        <li class="LP-TagList__Item">
 | 
			
		||||
                            <div class="LP-Tag">
 | 
			
		||||
                                <p class="LP-Paragraph LP-Paragraph">Wachhund</p>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </li>
 | 
			
		||||
                        <li class="LP-TagList__Item">
 | 
			
		||||
                            <div class="LP-Tag">
 | 
			
		||||
                                <p class="LP-Paragraph LP-Paragraph">Zaun</p>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </li>
 | 
			
		||||
                        <li class="LP-TagList__Item">
 | 
			
		||||
                            <div class="LP-Tag">
 | 
			
		||||
                                <p class="LP-Paragraph LP-Paragraph">Security</p>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </li>
 | 
			
		||||
                    </ul>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -57,22 +57,22 @@
 | 
			
		||||
            <div class="LP-Content">
 | 
			
		||||
                <ul class="LP-LinkList__List">
 | 
			
		||||
                    <li class="LP-LinkList__Item"><a target="_blank" href="https://www.google.com/maps?q={{place.latitude}},{{place.longitude}}" class="LP-Link"><span class="LP-Text">Google Maps</span></a></li>
 | 
			
		||||
                	<li class="LP-LinkList__Item"><a target="_blank" href="https://www.tim-online.nrw.de/tim-online2/?center={{place.latitude}},{{place.longitude}}&icon=true&bg=dop" class="LP-Link"><span class="LP-Text">TIM Online</span></a></li>
 | 
			
		||||
                	<li class="LP-LinkList__Item"><a target="_blank" href="http://www.openstreetmap.org/?mlat={{place.latitude}}&mlon={{place.longitude}}&zoom=16" class="LP-Link"><span class="LP-Text">OSM</span></a></li>
 | 
			
		||||
                    <li class="LP-LinkList__Item"><a target="_blank" href="https://www.tim-online.nrw.de/tim-online2/?center={{place.latitude}},{{place.longitude}}&icon=true&bg=dop" class="LP-Link"><span class="LP-Text">TIM Online</span></a></li>
 | 
			
		||||
                    <li class="LP-LinkList__Item"><a target="_blank" href="http://www.openstreetmap.org/?mlat={{place.latitude}}&mlon={{place.longitude}}&zoom=16" class="LP-Link"><span class="LP-Text">OSM</span></a></li>
 | 
			
		||||
                </ul>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
	</article>
 | 
			
		||||
    </article>
 | 
			
		||||
    <article class="LP-Section">
 | 
			
		||||
        <h1 class="LP-Headline LP-Headline">Bilder</h1>
 | 
			
		||||
        <div class="LP-Content__Wrapper">
 | 
			
		||||
            <div class=" LP-Content">
 | 
			
		||||
                <ul class="LP-PlaceOverView__ImageList">
 | 
			
		||||
					{% for place_image in place.images.all %}
 | 
			
		||||
                    {% for place_image in place.images.all %}
 | 
			
		||||
                    <li class="LP-PlaceOverView__ImageItem">
 | 
			
		||||
                        <a href="{{ place_image.filename.large.url }}" class="LP-Link"><img class="LP-Image" src="{{ place_image.filename.thumbnail.url }}"></a>
 | 
			
		||||
					</li>
 | 
			
		||||
					{% endfor %}
 | 
			
		||||
                    </li>
 | 
			
		||||
                    {% endfor %}
 | 
			
		||||
                </ul>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,43 +5,43 @@
 | 
			
		||||
 | 
			
		||||
{% block maincontent %}
 | 
			
		||||
<form class="LP-Form" method="POST" enctype="multipart/form-data">
 | 
			
		||||
	<fieldset class="LP-Form__Fieldset">
 | 
			
		||||
		<legend class="LP-Form__Legend">Place aktualisieren</legend>
 | 
			
		||||
		{% csrf_token %}
 | 
			
		||||
		<div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.name %}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.location %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
    <fieldset class="LP-Form__Fieldset">
 | 
			
		||||
        <legend class="LP-Form__Legend">Place aktualisieren</legend>
 | 
			
		||||
        {% csrf_token %}
 | 
			
		||||
        <div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.name %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.location %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.latitude %}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.longitude %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition LP-Form__Composition--breakable">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.latitude %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.longitude %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.description %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.description %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<div class="LP-Form__Field">
 | 
			
		||||
				{% include 'partials/form/inputField.html' with field=form.filename %}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <div class="LP-Form__Field">
 | 
			
		||||
                {% include 'partials/form/inputField.html' with field=form.filename %}
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
		<div class="LP-Form__Composition">
 | 
			
		||||
			<input type="submit" class="LP-Button" value="Abschicken"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</fieldset>
 | 
			
		||||
        <div class="LP-Form__Composition">
 | 
			
		||||
            <input type="submit" class="LP-Button" value="Abschicken"/>
 | 
			
		||||
        </div>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
 | 
			
		||||
</form>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
from django.urls import path
 | 
			
		||||
from .views import (
 | 
			
		||||
    hello_world,
 | 
			
		||||
	HomeView, 
 | 
			
		||||
    HomeView, 
 | 
			
		||||
    place_detail_view, 
 | 
			
		||||
    place_list_view, 
 | 
			
		||||
    SignUpView, 
 | 
			
		||||
@@ -11,7 +11,7 @@ from .views import (
 | 
			
		||||
 | 
			
		||||
urlpatterns = [
 | 
			
		||||
    path('hello_world/', hello_world), # You know what this is :P
 | 
			
		||||
	path('', HomeView.as_view(), name='home'),
 | 
			
		||||
    path('', HomeView.as_view(), name='home'),
 | 
			
		||||
    path('signup/', SignUpView.as_view(), name='signup'),
 | 
			
		||||
    path('place/<int:pk>/', place_detail_view, name='place_detail'),
 | 
			
		||||
    path('place/create/', PlaceCreateView.as_view(), name='place_create'),
 | 
			
		||||
 
 | 
			
		||||
@@ -29,12 +29,12 @@ def hello_world(request):
 | 
			
		||||
    return render(request, 'hello_world.html', {'text':'Hello World!'})
 | 
			
		||||
 | 
			
		||||
class HomeView(View):
 | 
			
		||||
	def get(self, request, *args, **kwargs):
 | 
			
		||||
		place_list = Place.objects.all().order_by('submitted_when')[:10]
 | 
			
		||||
		context = {
 | 
			
		||||
			'place_list': place_list
 | 
			
		||||
		}
 | 
			
		||||
		return render(request, 'home.html', context)
 | 
			
		||||
    def get(self, request, *args, **kwargs):
 | 
			
		||||
        place_list = Place.objects.all().order_by('submitted_when')[:10]
 | 
			
		||||
        context = {
 | 
			
		||||
            'place_list': place_list
 | 
			
		||||
        }
 | 
			
		||||
        return render(request, 'home.html', context)
 | 
			
		||||
 | 
			
		||||
class PlaceUpdateView(UpdateView):
 | 
			
		||||
    template_name = 'update_place.html'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user