diff --git a/gulp/sass.js b/gulp/sass.js index 58cf4b0..271c520 100644 --- a/gulp/sass.js +++ b/gulp/sass.js @@ -1,25 +1,33 @@ -import { src, dest } from 'gulp'; +import { dest, series, src } from 'gulp'; import concat from 'gulp-concat'; import path from 'path'; import sass from 'gulp-sass'; const PROJECT_DIR = path.join('src', 'newsreader'); -const STATIC_DIR = path.join(PROJECT_DIR, 'scss'); +const SRC_DIR = path.join(PROJECT_DIR, 'scss'); +const STATIC_SUFFIX = 'dist/css/'; -export const ACCOUNTS_DIR = path.join(PROJECT_DIR, 'accounts', 'static'); -export const CORE_DIR = path.join(PROJECT_DIR, 'news', 'core', 'static'); +export const ACCOUNTS_DIR = path.join(PROJECT_DIR, 'accounts', 'static', 'accounts'); +export const CORE_DIR = path.join(PROJECT_DIR, 'news', 'core', 'static', 'core'); -export const accountsTask = () => { - return src(`${STATIC_DIR}/accounts/index.scss`) - .pipe(sass().on('error', sass.logError)) - .pipe(concat('accounts.css')) - .pipe(dest(`${ACCOUNTS_DIR}/accounts/dist/css`)); -}; - -export const coreTask = () => { - return src(`${STATIC_DIR}/homepage/index.scss`) - .pipe(sass().on('error', sass.logError)) - .pipe(concat('core.css')) - .pipe(dest(`${CORE_DIR}/core/dist/css`)); +const taskMappings = [ + { name: 'login', destDir: `${ACCOUNTS_DIR}/${STATIC_SUFFIX}` }, + { name: 'homepage', destDir: `${CORE_DIR}/${STATIC_SUFFIX}` }, +]; + +export const sassTask = done => { + const tasks = taskMappings.map(taskMapping => { + const name = taskMapping.name; + const destDir = taskMapping.destDir; + + return () => { + return src(`${SRC_DIR}/pages/${name}/index.scss`) + .pipe(sass().on('error', sass.logError)) + .pipe(concat(`${name}.css`)) + .pipe(dest(destDir)); + }; + }); + + series(...tasks)(done); }; diff --git a/gulpfile.babel.js b/gulpfile.babel.js index bea1785..e638c11 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -3,11 +3,10 @@ import { parallel, series, watch as _watch } from 'gulp'; import path from 'path'; import del from 'del'; -import { ACCOUNTS_DIR, CORE_DIR, accountsTask, coreTask } from './gulp/sass'; +import { ACCOUNTS_DIR, CORE_DIR, sassTask } from './gulp/sass'; import babelTask from './gulp/babel'; const PROJECT_DIR = path.join('src', 'newsreader'); -const sassTasks = [accountsTask, coreTask]; const clean = () => { return del([ @@ -20,8 +19,8 @@ const clean = () => { export const watch = () => { return _watch([`${PROJECT_DIR}/scss/**/*.scss`, `${PROJECT_DIR}/js/**/*.js`], done => { - series(clean, ...sassTasks, babelTask)(done); + series(clean, sassTask, babelTask)(done); }); }; -export default series(clean, ...sassTasks, babelTask); +export default series(clean, sassTask, babelTask); diff --git a/src/newsreader/accounts/models.py b/src/newsreader/accounts/models.py index 58b7e66..b4d657a 100644 --- a/src/newsreader/accounts/models.py +++ b/src/newsreader/accounts/models.py @@ -75,7 +75,7 @@ class User(AbstractUser): every=1, period=IntervalSchedule.HOURS ) - self.task = PeriodicTask.objects.create( + self.task, _ = PeriodicTask.objects.get_or_create( enabled=True, interval=self.task_interval, name=f"{self.email}-collection-task", diff --git a/src/newsreader/accounts/templates/accounts/login.html b/src/newsreader/accounts/templates/accounts/login.html index c9a9bca..f923643 100644 --- a/src/newsreader/accounts/templates/accounts/login.html +++ b/src/newsreader/accounts/templates/accounts/login.html @@ -3,7 +3,7 @@ {% load static %} {% block head %} - + {% endblock %} {% block content %} diff --git a/src/newsreader/news/core/templates/core/main.html b/src/newsreader/news/core/templates/core/homepage.html similarity index 100% rename from src/newsreader/news/core/templates/core/main.html rename to src/newsreader/news/core/templates/core/homepage.html diff --git a/src/newsreader/news/core/urls.py b/src/newsreader/news/core/urls.py index 3255cee..451c176 100644 --- a/src/newsreader/news/core/urls.py +++ b/src/newsreader/news/core/urls.py @@ -10,10 +10,10 @@ from newsreader.news.core.endpoints import ( NestedPostCategoryView, NestedRuleCategoryView, ) -from newsreader.news.core.views import MainView +from newsreader.news.core.views import NewsView -index_page = login_required(MainView.as_view()) +index_page = login_required(NewsView.as_view()) endpoints = [ path("posts/", ListPostView.as_view(), name="posts-list"), diff --git a/src/newsreader/news/core/views.py b/src/newsreader/news/core/views.py index 7832673..0768984 100644 --- a/src/newsreader/news/core/views.py +++ b/src/newsreader/news/core/views.py @@ -3,8 +3,8 @@ from typing import Dict from django.views.generic.base import TemplateView -class MainView(TemplateView): - template_name = "core/main.html" +class NewsView(TemplateView): + template_name = "core/homepage.html" # TODO serialize objects to show filled main page def get_context_data(self, **kwargs) -> Dict: diff --git a/src/newsreader/scss/accounts/index.scss b/src/newsreader/scss/accounts/index.scss deleted file mode 100644 index d155753..0000000 --- a/src/newsreader/scss/accounts/index.scss +++ /dev/null @@ -1,6 +0,0 @@ -// General imports -@import "../partials/variables"; -@import "../components/index"; - -// Page specific -@import "./components/index"; diff --git a/src/newsreader/scss/elements/index.scss b/src/newsreader/scss/elements/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/newsreader/scss/homepage/index.scss b/src/newsreader/scss/homepage/index.scss deleted file mode 100644 index aad2761..0000000 --- a/src/newsreader/scss/homepage/index.scss +++ /dev/null @@ -1,7 +0,0 @@ -// General imports -@import "../partials/variables"; -@import "../components/index"; - -// Page specific -@import "./components/index"; -@import "./elements/index"; diff --git a/src/newsreader/scss/homepage/components/categories/_categories.scss b/src/newsreader/scss/pages/homepage/components/categories/_categories.scss similarity index 100% rename from src/newsreader/scss/homepage/components/categories/_categories.scss rename to src/newsreader/scss/pages/homepage/components/categories/_categories.scss diff --git a/src/newsreader/scss/homepage/components/categories/index.scss b/src/newsreader/scss/pages/homepage/components/categories/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/categories/index.scss rename to src/newsreader/scss/pages/homepage/components/categories/index.scss diff --git a/src/newsreader/scss/homepage/components/category/_category.scss b/src/newsreader/scss/pages/homepage/components/category/_category.scss similarity index 100% rename from src/newsreader/scss/homepage/components/category/_category.scss rename to src/newsreader/scss/pages/homepage/components/category/_category.scss diff --git a/src/newsreader/scss/homepage/components/category/index.scss b/src/newsreader/scss/pages/homepage/components/category/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/category/index.scss rename to src/newsreader/scss/pages/homepage/components/category/index.scss diff --git a/src/newsreader/scss/homepage/components/content/_content.scss b/src/newsreader/scss/pages/homepage/components/content/_content.scss similarity index 100% rename from src/newsreader/scss/homepage/components/content/_content.scss rename to src/newsreader/scss/pages/homepage/components/content/_content.scss diff --git a/src/newsreader/scss/homepage/components/content/index.scss b/src/newsreader/scss/pages/homepage/components/content/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/content/index.scss rename to src/newsreader/scss/pages/homepage/components/content/index.scss diff --git a/src/newsreader/scss/homepage/components/index.scss b/src/newsreader/scss/pages/homepage/components/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/index.scss rename to src/newsreader/scss/pages/homepage/components/index.scss diff --git a/src/newsreader/scss/homepage/components/main/_main.scss b/src/newsreader/scss/pages/homepage/components/main/_main.scss similarity index 100% rename from src/newsreader/scss/homepage/components/main/_main.scss rename to src/newsreader/scss/pages/homepage/components/main/_main.scss diff --git a/src/newsreader/scss/accounts/components/main/index.scss b/src/newsreader/scss/pages/homepage/components/main/index.scss similarity index 100% rename from src/newsreader/scss/accounts/components/main/index.scss rename to src/newsreader/scss/pages/homepage/components/main/index.scss diff --git a/src/newsreader/scss/homepage/components/post-block/_post-block.scss b/src/newsreader/scss/pages/homepage/components/post-block/_post-block.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post-block/_post-block.scss rename to src/newsreader/scss/pages/homepage/components/post-block/_post-block.scss diff --git a/src/newsreader/scss/homepage/components/post-block/index.scss b/src/newsreader/scss/pages/homepage/components/post-block/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post-block/index.scss rename to src/newsreader/scss/pages/homepage/components/post-block/index.scss diff --git a/src/newsreader/scss/homepage/components/post-message/_post-message.scss b/src/newsreader/scss/pages/homepage/components/post-message/_post-message.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post-message/_post-message.scss rename to src/newsreader/scss/pages/homepage/components/post-message/_post-message.scss diff --git a/src/newsreader/scss/homepage/components/post-message/index.scss b/src/newsreader/scss/pages/homepage/components/post-message/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post-message/index.scss rename to src/newsreader/scss/pages/homepage/components/post-message/index.scss diff --git a/src/newsreader/scss/homepage/components/post/_post.scss b/src/newsreader/scss/pages/homepage/components/post/_post.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post/_post.scss rename to src/newsreader/scss/pages/homepage/components/post/_post.scss diff --git a/src/newsreader/scss/homepage/components/post/index.scss b/src/newsreader/scss/pages/homepage/components/post/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/post/index.scss rename to src/newsreader/scss/pages/homepage/components/post/index.scss diff --git a/src/newsreader/scss/homepage/components/posts-header/_posts-header.scss b/src/newsreader/scss/pages/homepage/components/posts-header/_posts-header.scss similarity index 100% rename from src/newsreader/scss/homepage/components/posts-header/_posts-header.scss rename to src/newsreader/scss/pages/homepage/components/posts-header/_posts-header.scss diff --git a/src/newsreader/scss/homepage/components/posts-header/index.scss b/src/newsreader/scss/pages/homepage/components/posts-header/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/posts-header/index.scss rename to src/newsreader/scss/pages/homepage/components/posts-header/index.scss diff --git a/src/newsreader/scss/homepage/components/posts-section/index.scss b/src/newsreader/scss/pages/homepage/components/posts-section/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/posts-section/index.scss rename to src/newsreader/scss/pages/homepage/components/posts-section/index.scss diff --git a/src/newsreader/scss/homepage/components/posts/_posts.scss b/src/newsreader/scss/pages/homepage/components/posts/_posts.scss similarity index 100% rename from src/newsreader/scss/homepage/components/posts/_posts.scss rename to src/newsreader/scss/pages/homepage/components/posts/_posts.scss diff --git a/src/newsreader/scss/homepage/components/posts/index.scss b/src/newsreader/scss/pages/homepage/components/posts/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/posts/index.scss rename to src/newsreader/scss/pages/homepage/components/posts/index.scss diff --git a/src/newsreader/scss/homepage/components/read-button/_read-button.scss b/src/newsreader/scss/pages/homepage/components/read-button/_read-button.scss similarity index 100% rename from src/newsreader/scss/homepage/components/read-button/_read-button.scss rename to src/newsreader/scss/pages/homepage/components/read-button/_read-button.scss diff --git a/src/newsreader/scss/homepage/components/read-button/index.scss b/src/newsreader/scss/pages/homepage/components/read-button/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/read-button/index.scss rename to src/newsreader/scss/pages/homepage/components/read-button/index.scss diff --git a/src/newsreader/scss/homepage/components/rule/_rule.scss b/src/newsreader/scss/pages/homepage/components/rule/_rule.scss similarity index 100% rename from src/newsreader/scss/homepage/components/rule/_rule.scss rename to src/newsreader/scss/pages/homepage/components/rule/_rule.scss diff --git a/src/newsreader/scss/homepage/components/rule/index.scss b/src/newsreader/scss/pages/homepage/components/rule/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/rule/index.scss rename to src/newsreader/scss/pages/homepage/components/rule/index.scss diff --git a/src/newsreader/scss/homepage/components/rules/_rules.scss b/src/newsreader/scss/pages/homepage/components/rules/_rules.scss similarity index 100% rename from src/newsreader/scss/homepage/components/rules/_rules.scss rename to src/newsreader/scss/pages/homepage/components/rules/_rules.scss diff --git a/src/newsreader/scss/homepage/components/rules/index.scss b/src/newsreader/scss/pages/homepage/components/rules/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/rules/index.scss rename to src/newsreader/scss/pages/homepage/components/rules/index.scss diff --git a/src/newsreader/scss/homepage/components/sidebar/_sidebar.scss b/src/newsreader/scss/pages/homepage/components/sidebar/_sidebar.scss similarity index 100% rename from src/newsreader/scss/homepage/components/sidebar/_sidebar.scss rename to src/newsreader/scss/pages/homepage/components/sidebar/_sidebar.scss diff --git a/src/newsreader/scss/homepage/components/sidebar/index.scss b/src/newsreader/scss/pages/homepage/components/sidebar/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/sidebar/index.scss rename to src/newsreader/scss/pages/homepage/components/sidebar/index.scss diff --git a/src/newsreader/scss/homepage/elements/badge/_badge.scss b/src/newsreader/scss/pages/homepage/elements/badge/_badge.scss similarity index 100% rename from src/newsreader/scss/homepage/elements/badge/_badge.scss rename to src/newsreader/scss/pages/homepage/elements/badge/_badge.scss diff --git a/src/newsreader/scss/homepage/elements/badge/index.scss b/src/newsreader/scss/pages/homepage/elements/badge/index.scss similarity index 100% rename from src/newsreader/scss/homepage/elements/badge/index.scss rename to src/newsreader/scss/pages/homepage/elements/badge/index.scss diff --git a/src/newsreader/scss/homepage/elements/index.scss b/src/newsreader/scss/pages/homepage/elements/index.scss similarity index 100% rename from src/newsreader/scss/homepage/elements/index.scss rename to src/newsreader/scss/pages/homepage/elements/index.scss diff --git a/src/newsreader/scss/pages/homepage/index.scss b/src/newsreader/scss/pages/homepage/index.scss new file mode 100644 index 0000000..16b6493 --- /dev/null +++ b/src/newsreader/scss/pages/homepage/index.scss @@ -0,0 +1,8 @@ +// General imports +@import "../../partials/variables"; +@import "../../components/index"; +@import "../../elements/index"; + +// Page specific +@import "./components/index"; +@import "./elements/index"; diff --git a/src/newsreader/scss/accounts/components/form/_form.scss b/src/newsreader/scss/pages/login/components/form/_form.scss similarity index 100% rename from src/newsreader/scss/accounts/components/form/_form.scss rename to src/newsreader/scss/pages/login/components/form/_form.scss diff --git a/src/newsreader/scss/accounts/components/form/index.scss b/src/newsreader/scss/pages/login/components/form/index.scss similarity index 100% rename from src/newsreader/scss/accounts/components/form/index.scss rename to src/newsreader/scss/pages/login/components/form/index.scss diff --git a/src/newsreader/scss/accounts/components/index.scss b/src/newsreader/scss/pages/login/components/index.scss similarity index 100% rename from src/newsreader/scss/accounts/components/index.scss rename to src/newsreader/scss/pages/login/components/index.scss diff --git a/src/newsreader/scss/accounts/components/main/_main.scss b/src/newsreader/scss/pages/login/components/main/_main.scss similarity index 100% rename from src/newsreader/scss/accounts/components/main/_main.scss rename to src/newsreader/scss/pages/login/components/main/_main.scss diff --git a/src/newsreader/scss/homepage/components/main/index.scss b/src/newsreader/scss/pages/login/components/main/index.scss similarity index 100% rename from src/newsreader/scss/homepage/components/main/index.scss rename to src/newsreader/scss/pages/login/components/main/index.scss diff --git a/src/newsreader/scss/pages/login/index.scss b/src/newsreader/scss/pages/login/index.scss new file mode 100644 index 0000000..859e33f --- /dev/null +++ b/src/newsreader/scss/pages/login/index.scss @@ -0,0 +1,7 @@ +// General imports +@import "../../partials/variables"; +@import "../../components/index"; +@import "../../elements/index"; + +// Page specific +@import "./components/index";