Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
541 changes: 541 additions & 0 deletions .idea/dataSources.ids

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 30 additions & 0 deletions .idea/velespi.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 7 additions & 2 deletions places/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,22 @@
Place, Category, Review, Media
)


class MediaInline(admin.TabularInline):
model = Media
extra = 0


class ReviewInline(admin.TabularInline):
model = Review
extra = 0


class PlaceAdmin(admin.ModelAdmin):
list_display = ('name', 'user', 'category', 'has_wifi',
list_display = ('name', 'user', 'category', 'has_wifi',
'review_count')
list_editable = ('category', 'has_wifi')
actions = ('set_wifi_true', )
actions = ('set_wifi_true',)
search_fields = ('name', 'user__username')
inlines = [
MediaInline,
Expand All @@ -25,8 +28,10 @@ class PlaceAdmin(admin.ModelAdmin):

def set_wifi_true(self, request, queryset):
queryset.update(has_wifi=True)

set_wifi_true.short_description = 'Mahmut'


admin.site.register(Place, PlaceAdmin)
admin.site.register(Category)
admin.site.register(Review)
Expand Down
79 changes: 40 additions & 39 deletions places/forms.py
Original file line number Diff line number Diff line change
@@ -1,51 +1,52 @@
from django.forms import (
ModelForm, HiddenInput, ValidationError
ModelForm, HiddenInput, ValidationError
)

from places.models import Place, Media, Review


class PlaceCreationForm(ModelForm):
class Meta:
model = Place
fields = (
'name',
'coordinates',
'category',
'has_wifi',
'telephone',
'description',
)
widgets = {
'coordinates': HiddenInput
}

def clean_coordinates(self):
coords = self.cleaned_data['coordinates']

try:
lat, lng = coords.split(',')
lat = float(lat)
lng = float(lng)

if (
lat < -90 or lat > 90 or
lng < -180 or lng > 180
):
raise ValidationError('Geçerli bir koordinat girin.')

except ValueError:
raise ValidationError('Koordinat girin.')

return coords
class Meta:
model = Place
fields = (
'name',
'coordinates',
'category',
'has_wifi',
'telephone',
'description',
)
widgets = {
'coordinates': HiddenInput
}

def clean_coordinates(self):
coords = self.cleaned_data['coordinates']

try:
lat, lng = coords.split(',')
lat = float(lat)
lng = float(lng)

if (
lat < -90 or lat > 90 or
lng < -180 or lng > 180
):
raise ValidationError('Geçerli bir koordinat girin.')

except ValueError:
raise ValidationError('Koordinat girin.')

return coords


class MediaCreationForm(ModelForm):
class Meta:
model = Media
fields = ('image', )
class Meta:
model = Media
fields = ('image',)


class ReviewCreationForm(ModelForm):
class Meta:
model = Review
fields = ('comment', 'vote')
class Meta:
model = Review
fields = ('comment', 'vote')
6 changes: 5 additions & 1 deletion places/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class Meta:
def __str__(self):
return smart_text(self.name)


class PlaceManager(models.Manager):
def get_queryset(self):
qs = super(PlaceManager, self).get_queryset()
Expand All @@ -22,8 +23,9 @@ def active_places(self):
is_active=True,
)


class Place(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
user = models.ForeignKey(settings.AUTH_USER_MODEL,
related_name='added_places')
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=False)
Expand All @@ -48,6 +50,7 @@ def get_absolute_url(self):
def review_count(self):
return self.review_set.count()


class Review(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
place = models.ForeignKey(Place)
Expand All @@ -66,6 +69,7 @@ class Review(models.Model):
def __str__(self):
return smart_text(self.comment)


class Media(models.Model):
place = models.ForeignKey(Place)
image = models.ImageField(upload_to="places")
Expand Down
9 changes: 7 additions & 2 deletions places/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,17 @@ def index(request):
}
)


def detail(request, id):
return render(
return render(
request,
'place.html',
{
'place': get_object_or_404(Place, id=id),
}
)


@login_required(login_url='login')
def new_place(request):
form = PlaceCreationForm()
Expand All @@ -51,6 +53,7 @@ def new_place(request):
}
)


@login_required(login_url='login')
def new_media(request, place_id):
place = get_object_or_404(Place, id=place_id)
Expand All @@ -72,6 +75,7 @@ def new_media(request, place_id):
}
)


@login_required(login_url='login')
def new_review(request, place_id):
place = get_object_or_404(Place, id=place_id)
Expand All @@ -94,12 +98,13 @@ def new_review(request, place_id):
}
)


@login_required(login_url='login')
def like_place(request, place_id):
place = get_object_or_404(Place, id=place_id)

if request.method == "POST":

if request.user in place.likes.all():
place.likes.remove(request.user)
action = 'unlike'
Expand Down
7 changes: 4 additions & 3 deletions profiles/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@


class RegistrationForm(UserCreationForm):
class Meta:
fields = ['username', 'email']
model = User
class Meta:
fields = ['username', 'email']
model = User


class LoginForm(forms.Form):
username = forms.CharField(required=True)
Expand Down
Loading