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";