diff --git a/README.md b/README.md index d7c6a28bfd4198cb5291f0560c5141b9d5c9f1b5..a8f9ba3fbb7b46a6e2c2092388d660f57ebe162b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # COM3014-Team3 -## Coursework code ## Petgram - To run the code through docker run the command: - docker-compose up +Once the repository has been cloned to your machine in a command line open the folder com3014-team3 +on windows the command to run the code through Docker is: + docker-compose up +on linux the command is: + sudo docker-compose up \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index ec29e6619553ddee56fcb56975ddf84815337f52..7eb8eb6d2126b0a70432fa6871726292d6e221e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,8 @@ services: - .:/com3014-team3 ports: - 8000:8000 + depends_on: + - pgdb main: build: context: . diff --git a/main/about/views.py b/main/about/views.py index c4f0006a5164b00ae4e091092c126b87711e5979..2f3487109cf9f0859bb82e6a821ffed7ae54867c 100644 --- a/main/about/views.py +++ b/main/about/views.py @@ -1,4 +1,5 @@ from django.shortcuts import render def about(request): + # opens the about page return render(request, 'about/about.html', {}) \ No newline at end of file diff --git a/main/contact/views.py b/main/contact/views.py index dbfb351d46601835af37279ed80d08c9059e2b7d..d37c4f228e44a790c36bafeb910ff45380536074 100644 --- a/main/contact/views.py +++ b/main/contact/views.py @@ -3,10 +3,15 @@ from .forms import ContactForm def contact(request): if request.method == "POST": + # specifies teh form form = ContactForm(request.POST) + #checks if its valid if form.is_valid(): + #saves the form form.save() - return redirect('http://127.0.0.1:8001/register/welcome') + #redirects to welcome page + return redirect('http://localhost:8000/register/welcome') else: form = ContactForm() + #opens contact page with form return render(request, 'contact/contactpage.html', {'form': form}) \ No newline at end of file diff --git a/main/main/urls.py b/main/main/urls.py index 4729bf11716b83d84929a54e2bdc0912b7511069..4b637ad5ac436011bae3ee74412b20ab23eabe5f 100644 --- a/main/main/urls.py +++ b/main/main/urls.py @@ -19,7 +19,6 @@ from django.urls import path, include from django.conf import settings from django.conf.urls.static import static - urlpatterns = [ path('admin/', admin.site.urls), path('contact/', include('contact.urls'), name='contact'), diff --git a/post/postapp/forms.py b/post/postapp/forms.py index fd8a26d6a8da2978966ae95f0816a5b82fdb1ba7..c4ddd626868776e210eabce72afb66d542d3a764 100644 --- a/post/postapp/forms.py +++ b/post/postapp/forms.py @@ -5,18 +5,9 @@ from django.db import models class addPostForm(forms.ModelForm): class Meta: - #The form for creating a new post. May use ImageField? + #The form for creating a new post model = post fields = ['image', 'description'] - # fields = ['image', 'author', 'description'] #Might need more stuff - # widgets = { - # # 'image': forms.Textarea(), #Filler - # # 'desc': forms.Textarea(attrs={'class': 'formfield','placeholder': 'Post Description', 'rows': 5, 'cols': 60}), - # # 'author': forms.HiddenInput(), - # # love the fact that you commented this line out and then instead of just uncommenting it you completely rewrote it - # #but anyways im like 90% sure you dont need this whole widget section so rip - # 'author': forms.HiddenInput() - # } class CommentForm(forms.ModelForm): class Meta: diff --git a/post/postapp/templates/post/newpostpage.html b/post/postapp/templates/post/newpostpage.html index ab660847d117eec6bde60f5987d09c29a8258de2..21147e2e8608f9b6bd008e00ac71d4cd67f23410 100644 --- a/post/postapp/templates/post/newpostpage.html +++ b/post/postapp/templates/post/newpostpage.html @@ -1,6 +1,6 @@ {% extends 'base.html' %} {% block content %} - <!--i changed some spacing here becuase looking at it was stressing me out --> + <!--i changed some spacing here becuase it was confusing me --> <form method = 'post' enctype="multipart/form-data"> {%csrf_token%} {{form.as_p}} diff --git a/post/postapp/urls.py b/post/postapp/urls.py index 95b801b1d79773def920d7038da2bf1dabccee01..ab46db4463df97439a3ee1c3f60504396ea22622 100644 --- a/post/postapp/urls.py +++ b/post/postapp/urls.py @@ -4,7 +4,6 @@ from .views import post urlpatterns = [ path('newPost', views.newPostView, name='newPost'), #Page for making a new post - path('success/', views.uploadokView, name= 'success'), # path('<int:pk>/', views.postDetailView.as_view(), name='post_detail'), # specific post path('delete/<int:nid>', views.delete_view, name = 'post_delete'), #to delete a post path('', views.index_view, name='post_index'), diff --git a/post/postapp/views.py b/post/postapp/views.py index 826f3988705fbdaf6d8ffe683bc59e1a04046359..c35e5c25b9c033108a280ec85b471cd90980a6b3 100644 --- a/post/postapp/views.py +++ b/post/postapp/views.py @@ -18,33 +18,25 @@ import os from django.core.files.storage import default_storage from django.http import JsonResponse -def successView(request): - context = {} - return render(request, 'post/success.html', post) #Might need to redirect elsewhere - - -def uploadokView(request): - return HttpResponse('Upload Successful') - @login_required -def newPostView(request): #Filler for my silly brain +def newPostView(request): context = {} #Your mystery field was actually the image not uploading #just needed request.FILES adding in - # form = addPostForm(request.POST or None, initial = {'author': request.user}) form = addPostForm(request.POST, request.FILES or None) if(request.method == 'POST'): if form.is_valid(): #user wasnt being saved properly either + #gets values from form post = form.save(commit=False) + #assigns current user as author post.author = request.user + #saves post post.save() - # form.save() messages.add_message(request, messages.SUCCESS, 'Post Created') return redirect('post_index') else: messages.add_message(request, messages.ERROR, 'Invalid form data; post not created') - #this one line was indented one to many times and was causing the weird thing when the form wasnt coming up straight away context['form'] = form return render(request, "post/newpostpage.html", context) @@ -52,7 +44,6 @@ def newPostView(request): #Filler for my silly brain class postDetailView(DetailView): model = post template_name = 'post/postdetail.html' - def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['comment_form'] = CommentForm() @@ -67,8 +58,6 @@ class postDetailView(DetailView): comment.save() return redirect('post_detail', pk=self.kwargs['pk']) else: - # Handle invalid form - # You might want to display an error message return redirect('post_detail', pk=self.kwargs['pk']) def delete_comment(request, comment_id): @@ -82,21 +71,17 @@ def delete_comment(request, comment_id): @login_required def index_view(request): context = {} - # Get all posts if request.user.is_staff: all_posts = post.objects.all() else: all_posts = post.objects.filter(author=request.user) - # Filter out posts without a valid image valid_posts = [] for post_item in all_posts: if post_item.image and default_storage.exists(post_item.image.name): valid_posts.append(post_item) - context["post_list"] = valid_posts - return render(request, "post/postIndex.html", context) def feed_view(request): @@ -116,12 +101,6 @@ def delete_view(request, nid): messages.add_message(request, messages.SUCCESS, 'Post Deleted') return redirect('post_index') - -# it took me so long to find this and i was so confused why the places you used it werent throwing an error -#but anyways you dont need this if you are just mean the superusers because you can do what ive done in index_view instead -def is_admin(user): - return user.groups.filter(name='adminUsers').exists() - @login_required def add_comment_view(request, pk): post_object = get_object_or_404(post, pk=pk) @@ -135,4 +114,5 @@ def add_comment_view(request, pk): return redirect('post_detail', pk=pk) else: form = CommentForm() - return redirect('post_detail', pk=pk) # Redirect to post detail page + # Redirect to post detail page + return redirect('post_detail', pk=pk) diff --git a/register/registerapp/views.py b/register/registerapp/views.py index 0dbab852b8cdb9b13a3640f9a82c58254f4669b1..1bf272d9716b85f16fd470fca664eb50756015a0 100644 --- a/register/registerapp/views.py +++ b/register/registerapp/views.py @@ -18,7 +18,7 @@ def register(request): if user is not None: login(request, user) - return redirect('login') # Change 'login' to the name of your login view + return redirect('login') else: form = RegistrationForm() @@ -34,6 +34,7 @@ def login_view(request): if request.method == 'POST': form = AuthenticationForm(request, data=request.POST) if form.is_valid(): + #saving user data username = form.cleaned_data['username'] password = form.cleaned_data['password'] user = authenticate(request, username=username, password=password)