Comments and Codeformatting
This commit is contained in:
parent
066bc6011a
commit
73a6a4f8d8
@ -15,6 +15,5 @@ class ExplorerAdmin(UserAdmin):
|
|||||||
list_display = ['email', 'username',]
|
list_display = ['email', 'username',]
|
||||||
|
|
||||||
admin.site.register(Explorer, ExplorerAdmin)
|
admin.site.register(Explorer, ExplorerAdmin)
|
||||||
|
|
||||||
admin.site.register(Place)
|
admin.site.register(Place)
|
||||||
admin.site.register(PlaceImage)
|
admin.site.register(PlaceImage)
|
@ -8,17 +8,27 @@ from django_thumbs.fields import ImageThumbsField
|
|||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
|
|
||||||
# Custom user model
|
|
||||||
class Explorer(AbstractUser):
|
class Explorer(AbstractUser):
|
||||||
# add additional fields in here
|
"""
|
||||||
|
Custom user model
|
||||||
|
Addtional fields wbd
|
||||||
|
"""
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.username
|
return self.username
|
||||||
|
|
||||||
# Place defines a lost place (location, name, description etc.).
|
|
||||||
class Place (models.Model):
|
class Place (models.Model):
|
||||||
|
"""
|
||||||
|
Place defines a lost place (location, name, description etc.).
|
||||||
|
"""
|
||||||
name = models.CharField(max_length=50)
|
name = models.CharField(max_length=50)
|
||||||
submitted_by = models.ForeignKey(Explorer, on_delete=models.SET_NULL, null=True, blank=True, related_name='places')
|
submitted_by = models.ForeignKey(
|
||||||
|
Explorer,
|
||||||
|
on_delete=models.SET_NULL,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
related_name='places'
|
||||||
|
)
|
||||||
location = models.CharField(max_length=50)
|
location = models.CharField(max_length=50)
|
||||||
latitude = models.FloatField()
|
latitude = models.FloatField()
|
||||||
longitude = models.FloatField()
|
longitude = models.FloatField()
|
||||||
@ -27,26 +37,41 @@ class Place (models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
# Define callback that generates /path/to/image.ext as filename.
|
|
||||||
def generate_image_upload_path(instance, filename):
|
|
||||||
return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1]
|
|
||||||
|
|
||||||
class PlaceImage (models.Model):
|
class PlaceImage (models.Model):
|
||||||
filename = ImageThumbsField(
|
|
||||||
upload_to=generate_image_upload_path,
|
SIZES=(
|
||||||
max_length=50,
|
|
||||||
sizes=(
|
|
||||||
{'code': 'thumbnail', 'wxh': '390x390'},
|
{'code': 'thumbnail', 'wxh': '390x390'},
|
||||||
{'code': 'hero', 'wxh': '700x700'},
|
{'code': 'hero', 'wxh': '700x700'},
|
||||||
{'code': 'large', 'wxh': '1920x1920'}
|
{'code': 'large', 'wxh': '1920x1920'}
|
||||||
)
|
|
||||||
)
|
)
|
||||||
place = models.ForeignKey(Place, on_delete=models.CASCADE, related_name='images')
|
|
||||||
|
filename = ImageThumbsField(
|
||||||
|
upload_to=generate_image_upload_path,
|
||||||
|
max_length=50,
|
||||||
|
sizes=self.SIZES
|
||||||
|
)
|
||||||
|
place = models.ForeignKey(
|
||||||
|
Place,
|
||||||
|
on_delete=models.CASCADE,
|
||||||
|
related_name='images'
|
||||||
|
)
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True)
|
||||||
|
|
||||||
def __str__(self):
|
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)])
|
||||||
|
|
||||||
|
def generate_image_upload_path(self, filename):
|
||||||
|
"""
|
||||||
|
Callback for generating path for uploaded images
|
||||||
|
"""
|
||||||
|
return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1]
|
||||||
|
|
||||||
|
|
||||||
# These two auto-delete files from filesystem when they are unneeded:
|
# These two auto-delete files from filesystem when they are unneeded:
|
||||||
|
|
||||||
@receiver(models.signals.post_delete, sender=PlaceImage)
|
@receiver(models.signals.post_delete, sender=PlaceImage)
|
||||||
|
@ -7,5 +7,5 @@ urlpatterns = [
|
|||||||
path('place/<int:pk>/', place_detail_view, name='place_detail'),
|
path('place/<int:pk>/', place_detail_view, name='place_detail'),
|
||||||
path('place/create/', PlaceEditView.as_view(), name='place_create'),
|
path('place/create/', PlaceEditView.as_view(), name='place_create'),
|
||||||
path('place/edit/<int:pk>/', PlaceEditView.as_view(), name='place_edit'),
|
path('place/edit/<int:pk>/', PlaceEditView.as_view(), name='place_edit'),
|
||||||
path('place/', place_list_view)
|
path('place/', place_list_view, name='place_list')
|
||||||
]
|
]
|
@ -23,20 +23,32 @@ def hello_world(request):
|
|||||||
return render(request, 'hello_world.html', {'text':'Hello World!'})
|
return render(request, 'hello_world.html', {'text':'Hello World!'})
|
||||||
|
|
||||||
class PlaceEditView(View):
|
class PlaceEditView(View):
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if 'pk' in kwargs:
|
if 'pk' in kwargs:
|
||||||
place = get_object_or_404(Place,pk=kwargs['pk'])
|
place = get_object_or_404(Place,pk=kwargs['pk'])
|
||||||
place_form = PlaceForm(instance=place)
|
place_form = PlaceForm(instance=place)
|
||||||
else:
|
else:
|
||||||
place_form = PlaceForm()
|
place_form = PlaceForm()
|
||||||
return render(request, 'create_place.html', {'form':place_form})
|
context = {
|
||||||
|
'form': place_form
|
||||||
|
}
|
||||||
|
return render(request, 'create_place.html', context)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
place_form = PlaceForm(request.POST)
|
place_form = PlaceForm(request.POST)
|
||||||
|
|
||||||
if place_form.is_valid() == True:
|
if place_form.is_valid() == True:
|
||||||
instance = place_form.save(commit=False)
|
instance = place_form.save(commit=False)
|
||||||
# Save logged in user as "submitted_by"
|
# Save logged in user as "submitted_by"
|
||||||
instance.submitted_by = request.user
|
instance.submitted_by = request.user
|
||||||
instance.save()
|
instance.save()
|
||||||
return redirect(reverse_lazy('place_detail', kwargs={'pk':instance.pk}))
|
kwargs_to_pass = {
|
||||||
|
'pk': instance.pk
|
||||||
|
}
|
||||||
|
return redirect(reverse_lazy('place_detail', kwargs=kwargs_to_pass))
|
||||||
else:
|
else:
|
||||||
return render(request, 'create_place.html', {'form':place_form})
|
context = {
|
||||||
|
'form': form_place
|
||||||
|
}
|
||||||
|
return render(request, 'create_place.html', context)
|
||||||
|
Loading…
Reference in New Issue
Block a user