Machina preview.
authorRadek Czajka <rczajka@rczajka.pl>
Wed, 24 Jul 2019 10:18:03 +0000 (12:18 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Wed, 24 Jul 2019 10:18:03 +0000 (12:18 +0200)
requirements/requirements.txt
src/wolnelektury/settings/apps.py
src/wolnelektury/settings/basic.py
src/wolnelektury/settings/cache.py
src/wolnelektury/settings/contrib.py
src/wolnelektury/settings/static.py
src/wolnelektury/templates/board_base.html [new file with mode: 0644]
src/wolnelektury/urls.py

index d916725..a75156a 100644 (file)
@@ -15,6 +15,7 @@ django-extensions==1.7.8
 djangorestframework==3.9.1
 djangorestframework-xml
 django-admin-ordering==0.10.0
 djangorestframework==3.9.1
 djangorestframework-xml
 django-admin-ordering==0.10.0
+django-machina==0.7.1
 
 oauthlib>=3.0.1,<3.1
 
 
 oauthlib>=3.0.1,<3.1
 
index 213f2e7..76a9218 100644 (file)
@@ -1,7 +1,8 @@
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
-#
-# These are the ones we should test.
+
+from machina import get_apps as get_machina_apps
+
 INSTALLED_APPS_OUR = [
     'wolnelektury',
     # our
 INSTALLED_APPS_OUR = [
     'wolnelektury',
     # our
@@ -72,6 +73,11 @@ INSTALLED_APPS_CONTRIB = [
     'allauth.socialaccount.providers.facebook',
     'allauth.socialaccount.providers.google',
     # 'allauth.socialaccount.providers.twitter',
     'allauth.socialaccount.providers.facebook',
     'allauth.socialaccount.providers.google',
     # 'allauth.socialaccount.providers.twitter',
-]
+
+    # Machina related apps:
+    'mptt',
+    'haystack',
+    'widget_tweaks',
+] + get_machina_apps()
 
 INSTALLED_APPS = INSTALLED_APPS_OUR + INSTALLED_APPS_CONTRIB
 
 INSTALLED_APPS = INSTALLED_APPS_OUR + INSTALLED_APPS_CONTRIB
index 2684cc4..e6511ab 100644 (file)
@@ -2,6 +2,7 @@
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from os import path
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from os import path
+from machina import MACHINA_MAIN_TEMPLATE_DIR
 from .paths import PROJECT_DIR
 
 DEBUG = False
 from .paths import PROJECT_DIR
 
 DEBUG = False
@@ -13,6 +14,8 @@ ADMINS = [
 
 MANAGERS = ADMINS
 
 
 MANAGERS = ADMINS
 
+CONTACT_EMAIL = 'fundacja@nowoczesnapolska.org.pl'
+
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',  # 'postgresql_psycopg2'
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',  # 'postgresql_psycopg2'
@@ -39,6 +42,10 @@ SITE_ID = 1
 
 TEMPLATES = [{
     'BACKEND': 'django.template.backends.django.DjangoTemplates',
 
 TEMPLATES = [{
     'BACKEND': 'django.template.backends.django.DjangoTemplates',
+    'DIRS': (
+        path.join(PROJECT_DIR, 'templates'),  # Duplicate, because of Machina<1 weird configuration.
+        MACHINA_MAIN_TEMPLATE_DIR,
+    ),
     'OPTIONS': {
         'loaders': (
             ('django.template.loaders.cached.Loader', (
     'OPTIONS': {
         'loaders': (
             ('django.template.loaders.cached.Loader', (
@@ -54,6 +61,7 @@ TEMPLATES = [{
             'django.template.context_processors.request',
             'wolnelektury.context_processors.extra_settings',
             'search.context_processors.search_form',
             'django.template.context_processors.request',
             'wolnelektury.context_processors.extra_settings',
             'search.context_processors.search_form',
+            'machina.core.context_processors.metadata',
         ),
     },
 }]
         ),
     },
 }]
@@ -75,6 +83,7 @@ MIDDLEWARE_CLASSES = [
     'django.contrib.messages.middleware.MessageMiddleware',
     'fnpdjango.middleware.SetRemoteAddrFromXRealIP',
     'django.middleware.cache.FetchFromCacheMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'fnpdjango.middleware.SetRemoteAddrFromXRealIP',
     'django.middleware.cache.FetchFromCacheMiddleware',
+    'machina.apps.forum_permission.middleware.ForumPermissionMiddleware',
 ]
 
 ROOT_URLCONF = 'wolnelektury.urls'
 ]
 
 ROOT_URLCONF = 'wolnelektury.urls'
index 107ac0d..fab8325 100644 (file)
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
@@ -24,6 +23,10 @@ CACHES = {
             '127.0.0.1:11211',
         ],
     },
             '127.0.0.1:11211',
         ],
     },
+    'machina_attachments': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/tmp',
+    },
 }
 
 CACHE_MIDDLEWARE_SECONDS = 24 * 60 * 60
 }
 
 CACHE_MIDDLEWARE_SECONDS = 24 * 60 * 60
index 308353a..5e89a6f 100644 (file)
@@ -46,3 +46,10 @@ REST_FRAMEWORK = {
 DEBUG_TOOLBAR_CONFIG = {
     'RESULTS_CACHE_SIZE': 100,
 }
 DEBUG_TOOLBAR_CONFIG = {
     'RESULTS_CACHE_SIZE': 100,
 }
+
+
+HAYSTACK_CONNECTIONS = {
+    'default': {
+        'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
+    },
+}
index cccb680..b8b7828 100644 (file)
@@ -202,3 +202,9 @@ STATICFILES_FINDERS = [
     'pipeline.finders.CachedFileFinder',
     'pipeline.finders.PipelineFinder',
 ]
     'pipeline.finders.CachedFileFinder',
     'pipeline.finders.PipelineFinder',
 ]
+
+
+from machina import MACHINA_MAIN_STATIC_DIR
+STATICFILES_DIRS = (
+    MACHINA_MAIN_STATIC_DIR,
+)
diff --git a/src/wolnelektury/templates/board_base.html b/src/wolnelektury/templates/board_base.html
new file mode 100644 (file)
index 0000000..cadb6bb
--- /dev/null
@@ -0,0 +1,48 @@
+{% extends "board_base.html" %}
+{% load i18n %}
+
+{% block header %}
+
+<div class="navbar-fixed-top-spacing">&nbsp;</div>
+<div class="navbar navbar-default navbar-fixed-top machina-navbar" role="navigation" style="background:black; color: white;">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <a class="" href="/"><img src="https://static.wolnelektury.pl/img/logo-neon.71fa40570160.png" alt="Towarzystwo Przyjaciół Wolnych Lektur" style="height:50px"></a>
+    </div>
+    <div class="collapse navbar-collapse">
+      {% block header_collapse %}
+      <div class="col-sm-7 col-md-8 col-lg-7">
+        <form class="navbar-form form-inline" role="search" action="{% url 'forum_search:search' %}">
+          <div class="form-group col-sm-6 col-md-7">
+            <div class="input-group">
+              <input type="text" class="form-control" placeholder="{% trans 'Search...' %}" name="q">
+              <div class="input-group-btn">
+                <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
+              </div>
+            </div>
+          </div>
+          <div class="form-group col-sm-5">
+            <a href="{% url 'forum_search:search' %}" class="btn btn-link">{% trans "Advanced search" %}</a>
+          </div>
+        </form>
+      </div>
+
+      <div class="col-sm-3 col-md-2 col-lg-2 navbar-right">
+          <div style="padding: 1em">
+             {{ user }}
+          </div>
+      </div>
+      {% endblock header_collapse %}
+    </div>
+  </div>
+</div>
+
+
+
+{% endblock header %}
index f284857..bd437a6 100644 (file)
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
@@ -7,6 +6,7 @@ from django.conf import settings
 from django.contrib import admin
 from django.views.generic import RedirectView
 import django.views.static
 from django.contrib import admin
 from django.views.generic import RedirectView
 import django.views.static
+from machina.app import board
 import catalogue.views
 import picture.views
 from . import views
 import catalogue.views
 import picture.views
 from . import views
@@ -75,6 +75,7 @@ urlpatterns += [
     url(r'^szukaj/', include('search.urls')),
 
     url(r'^i18n/', include('django.conf.urls.i18n')),
     url(r'^szukaj/', include('search.urls')),
 
     url(r'^i18n/', include('django.conf.urls.i18n')),
+    url(r'^forum/', include(board.urls)),
 ]
 
 urlpatterns += [
 ]
 
 urlpatterns += [