diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml index 6b94ae3..6f9719c 100644 --- a/.idea/jsLibraryMappings.xml +++ b/.idea/jsLibraryMappings.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/mdblog.iml b/.idea/mdblog.iml index 8263372..506a5b2 100644 --- a/.idea/mdblog.iml +++ b/.idea/mdblog.iml @@ -23,6 +23,7 @@ + diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml deleted file mode 100644 index 2a76b08..0000000 --- a/.idea/sqldialects.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/markdownblog/db_scripts/init_user_db.sql b/db_scripts/init_user_db.sql similarity index 100% rename from markdownblog/db_scripts/init_user_db.sql rename to db_scripts/init_user_db.sql diff --git a/markdownblog/blog/factories.py b/markdownblog/blog/factories.py index 27c8ae0..f9f6caf 100644 --- a/markdownblog/blog/factories.py +++ b/markdownblog/blog/factories.py @@ -1,6 +1,6 @@ import factory -from blog.models import Topic +from blog.models import Topic, Blogpost, Tag class TopicFactory(factory.Factory): @@ -9,3 +9,16 @@ class TopicFactory(factory.Factory): name = factory.Faker("word") numbered = False + + +class PostFactory(factory.Factory): + class Meta: + model = Blogpost + + title = factory.Faker("word") + tags = Tag.objects.all()[0] if len(Tag.objects.all()) != 0 else None + if len(Topic.objects.all()) == 0: + TopicFactory.create_batch(10) + topics = Topic.objects.all()[0] + + mdfile = "/tmp/test.md" diff --git a/markdownblog/blog/migrations/0003_blogpost_mdfile.py b/markdownblog/blog/migrations/0003_blogpost_mdfile.py new file mode 100644 index 0000000..42b79b2 --- /dev/null +++ b/markdownblog/blog/migrations/0003_blogpost_mdfile.py @@ -0,0 +1,19 @@ +# Generated by Django 4.0.5 on 2022-06-01 19:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('blog', '0002_alter_blogpost_topics_alter_topic_roottopic'), + ] + + operations = [ + migrations.AddField( + model_name='blogpost', + name='mdfile', + field=models.CharField(default='/tmp/test.md', max_length=255), + preserve_default=False, + ), + ] diff --git a/markdownblog/blog/migrations/0004_rename_topics_blogpost_topic.py b/markdownblog/blog/migrations/0004_rename_topics_blogpost_topic.py new file mode 100644 index 0000000..1529574 --- /dev/null +++ b/markdownblog/blog/migrations/0004_rename_topics_blogpost_topic.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.5 on 2022-06-01 19:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('blog', '0003_blogpost_mdfile'), + ] + + operations = [ + migrations.RenameField( + model_name='blogpost', + old_name='topics', + new_name='topic', + ), + ] diff --git a/markdownblog/blog/models.py b/markdownblog/blog/models.py index 4763a4d..536332f 100644 --- a/markdownblog/blog/models.py +++ b/markdownblog/blog/models.py @@ -16,8 +16,13 @@ class Topic(models.Model): class Blogpost(models.Model): + + def __str__(self) -> str: + return str(self.title) + created = models.DateTimeField(auto_now_add=True) last_modified = models.DateTimeField(auto_now=True) title = models.CharField(max_length=255) tags = models.ManyToManyField(Tag) - topics = models.ForeignKey(Topic, blank=True, null=True, on_delete=models.CASCADE) + topic = models.ForeignKey(Topic, blank=True, null=True, on_delete=models.CASCADE) + mdfile = models.CharField(max_length=255) diff --git a/markdownblog/blog/urls.py b/markdownblog/blog/urls.py index 167d708..3799b25 100644 --- a/markdownblog/blog/urls.py +++ b/markdownblog/blog/urls.py @@ -5,5 +5,5 @@ urlpatterns = [ path('', viewblog, name="index"), path('manage/addpost', addpost, name='addpost'), path('manage/order', order, name='order'), - path('mock/topic//', createmocks, name='mock'), + path('mock///', createmocks, name='mock'), ] diff --git a/markdownblog/blog/views.py b/markdownblog/blog/views.py index f01b3a4..51ab801 100644 --- a/markdownblog/blog/views.py +++ b/markdownblog/blog/views.py @@ -4,7 +4,7 @@ from django.contrib.auth.decorators import login_required from django.http import HttpResponse from django.shortcuts import render, redirect from blog.factories import TopicFactory -from blog.models import Topic +from blog.models import Topic, Tag, Blogpost from markdownblog import settings @@ -15,16 +15,34 @@ def viewblog(request) -> HttpResponse: @login_required def order(request): - return None + return render(request, 'blog/order.html') @login_required def addpost(request) -> HttpResponse: + if request.method == 'POST': + title = request.POST['title'] + markdown = request.POST['markdown'] + + tags = [] + + if 'tags' in request.POST and request.POST['tags'] != '': + tags_str = request.POST['tags'].split(" ") + for tag in tags_str: + tags.append(Tag.objects.filter(name=tag)[0]) + + topicstr = request.POST['topic'] + topics = None if topicstr == "No topic" else Topic.objects.filter(name=topicstr)[0] + + new_post = Blogpost.objects.create(title=title, topics=topics) + new_post.tags.set(tags) + context = {'alltopics': Topic.objects.all().order_by('name').values()} return render(request, 'blog/addpost.html', context) -def createmocks(request, n) -> HttpResponse: +def createmocks(request, objtype, n) -> HttpResponse: + topics = TopicFactory.create_batch(n) for topic in topics: diff --git a/markdownblog/markdownblog/settings.py b/markdownblog/markdownblog/settings.py index e259801..2399a6a 100644 --- a/markdownblog/markdownblog/settings.py +++ b/markdownblog/markdownblog/settings.py @@ -126,3 +126,5 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' LOGIN_REDIRECT_URL = "/" LOGOUT_REDIRECT_URL = "/" + +CSRF_HEADER_NAME = "X-CSRFToken" diff --git a/markdownblog/markdownblog/static/addpost.css b/markdownblog/markdownblog/static/addpost.css index 8d538f5..f162789 100644 --- a/markdownblog/markdownblog/static/addpost.css +++ b/markdownblog/markdownblog/static/addpost.css @@ -1,4 +1,9 @@ .posttitle { border: 1px solid #eaeaea; border-radius: 5px; +} + +#input_title { + font-size: 2.3em; + margin-top: 0.5em; } \ No newline at end of file diff --git a/markdownblog/markdownblog/templates/base/base.html b/markdownblog/markdownblog/templates/base/base.html index c0d37c5..f30296d 100644 --- a/markdownblog/markdownblog/templates/base/base.html +++ b/markdownblog/markdownblog/templates/base/base.html @@ -4,7 +4,6 @@ {% block title %}{% endblock %} - @@ -24,7 +23,7 @@ {% if user.is_authenticated %} addNew post - reorderManage posts + reorderManage posts diff --git a/markdownblog/markdownblog/templates/blog/addpost.html b/markdownblog/markdownblog/templates/blog/addpost.html index ff011fb..ed343b4 100644 --- a/markdownblog/markdownblog/templates/blog/addpost.html +++ b/markdownblog/markdownblog/templates/blog/addpost.html @@ -1,7 +1,7 @@ {% extends 'base/base.html' %} {% load static %} {% block title %} - Neuer Post + New Post {% endblock %} {% block includehere %} @@ -9,20 +9,20 @@ {% endblock %} {% block content %} - + {% csrf_token %} - Titel - + + Tags - + - + No topic {% for topic in alltopics %} {{ topic.name }} @@ -102,6 +102,8 @@ } ] }); + + $("#mde").data({editor: simplemde});