diff --git a/.gitignore b/.gitignore index b9f1e6d..278bd79 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,9 @@ env.bak/ venv.bak/ testappenv/ +#Directories +media/ + # Spyder project settings .spyderproject .spyproject diff --git a/copyStaticScrips.sh b/copyStaticScrips.sh new file mode 100644 index 0000000..6a43603 --- /dev/null +++ b/copyStaticScrips.sh @@ -0,0 +1,4 @@ +rm -d -r /var/www/testapp/ +mkdir /var/www/testapp +cp -a /root/appdirectory/assets/. /var/www/testapp/static +chown -R www-data:www-data /var/www diff --git a/post/admin.py b/post/admin.py index 28e3125..fb88761 100644 --- a/post/admin.py +++ b/post/admin.py @@ -1,4 +1,5 @@ from django.contrib import admin -from .models import Post +from .models import Post, ConusFilePDF # Register your models here. -admin.site.register(Post) \ No newline at end of file +admin.site.register(Post) +admin.site.register(ConusFilePDF) \ No newline at end of file diff --git a/post/forms.py b/post/forms.py index fad483c..a719b9c 100644 --- a/post/forms.py +++ b/post/forms.py @@ -6,3 +6,8 @@ class CreatePost(forms.ModelForm): model = models.Post fields = ['title' , 'body' , 'slug' , 'banner'] + +class UploadFileForm(forms.ModelForm): + class Meta: + model=models.ConusFilePDF + fields = [ 'fileName', 'file'] \ No newline at end of file diff --git a/post/migrations/0009_conusfilepdf.py b/post/migrations/0009_conusfilepdf.py new file mode 100644 index 0000000..dae4446 --- /dev/null +++ b/post/migrations/0009_conusfilepdf.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1 on 2024-08-30 23:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('post', '0008_post_author'), + ] + + operations = [ + migrations.CreateModel( + name='ConusFilePDF', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('fileName', models.CharField(max_length=32)), + ('file', models.FileField(upload_to='PDFuploads/')), + ], + ), + ] diff --git a/post/models.py b/post/models.py index 7a927cd..c9e7905 100644 --- a/post/models.py +++ b/post/models.py @@ -1,5 +1,6 @@ from django.db import models from django.contrib.auth.models import User +from dynamic_filenames import FilePattern # Create your models here. class Post(models.Model): @@ -13,5 +14,11 @@ class Post(models.Model): def __str__(self): return self.title +def user_directory_path(instance, filename): + return "user_{0}/{1}".format(instance.user.id, filename) - +upload_to_pattern = FilePattern(filename_pattern='PDFuploads/{app_label:.25}/{model_name:.30}/{uuid:base32}{ext}') +class ConusFilePDF(models.Model): + fileName = models.CharField(max_length=32) + #file = models.FileField(upload_to="PDFuploads/") + file = models.FileField(upload_to=upload_to_pattern) \ No newline at end of file diff --git a/post/templates/post/pdf_list.html b/post/templates/post/pdf_list.html new file mode 100644 index 0000000..bac16c5 --- /dev/null +++ b/post/templates/post/pdf_list.html @@ -0,0 +1,23 @@ +{% extends 'layout.html' %} + +{% block title %} + PDF +{% endblock %} + +{% block content %} +
+

PDFs

+ + {% for pdf in pdfs %} +
+

+ + {{ pdf.fileName }} + + + +

+
+ {% endfor %} +
+{% endblock %} \ No newline at end of file diff --git a/post/templates/post/pdf_page.html b/post/templates/post/pdf_page.html new file mode 100644 index 0000000..0681f16 --- /dev/null +++ b/post/templates/post/pdf_page.html @@ -0,0 +1,16 @@ +{% extends 'layout.html' %} + +{% block title %} + New PDF +{% endblock %} + +{% block content %} +
+

New PDFt

+
+ {% csrf_token %} + {{ form }} + +
+
+{% endblock %} \ No newline at end of file diff --git a/post/urls.py b/post/urls.py index 830e45c..caec112 100644 --- a/post/urls.py +++ b/post/urls.py @@ -6,6 +6,9 @@ app_name = 'post' urlpatterns = [ path('', views.post_list, name="list"), path('new-post/', views.post_new, name="new-post"), - path('', views.post_page, name="page"), + path('pdf/', views.pdf_page, name="pdf_page"), + path('pdf-list', views.pdf_list, name="pdf_list"), + path('', views.post_page, name="page") + ] \ No newline at end of file diff --git a/post/views.py b/post/views.py index 7c30a87..a1fca85 100644 --- a/post/views.py +++ b/post/views.py @@ -1,5 +1,5 @@ from django.shortcuts import render,redirect -from .models import Post +from .models import Post, ConusFilePDF from django.contrib.auth.decorators import login_required from . import forms @@ -25,4 +25,21 @@ def post_new(request): return redirect('post:list') else: form = forms.CreatePost() - return render(request, 'post/post_new.html', {'form': form}) \ No newline at end of file + return render(request, 'post/post_new.html', {'form': form}) + + +def pdf_page(request): + if request.method == "POST": + form = forms.UploadFileForm(request.POST, request.FILES) + if form.is_valid(): + #Handleuploaded file + form.save() + return redirect('post:pdf_page') + else: + form = forms.UploadFileForm() + return render(request, 'post/pdf_page.html', {'form' : form}) + + +def pdf_list(request): + pdfs = ConusFilePDF.objects.all() + return render(request, 'post/pdf_list.html', {'pdfs': pdfs}) \ No newline at end of file diff --git a/templates/home.html b/templates/home.html index bb50031..8165290 100644 --- a/templates/home.html +++ b/templates/home.html @@ -7,4 +7,6 @@ {% block content %}

Home

Check out my About page.

+

Upload a new PDF click here

+

show pdfs click here

{% endblock %} \ No newline at end of file diff --git a/testapp/settings.py b/testapp/settings.py index 60e0f48..14573bc 100644 --- a/testapp/settings.py +++ b/testapp/settings.py @@ -71,6 +71,7 @@ TEMPLATES = [ WSGI_APPLICATION = 'testapp.wsgi.application' +CSRF_TRUSTED_ORIGINS = ['https://develop.artemisneo.com'] # Database # https://docs.djangoproject.com/en/5.1/ref/settings/#databases