aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Bonhomme <cedric@cedricbonhomme.org>2020-03-12 21:40:23 +0100
committerCédric Bonhomme <cedric@cedricbonhomme.org>2020-03-12 21:40:23 +0100
commit9dd9391b5ab23f2a06200b2870337fcf9f631ad4 (patch)
treeb03b6df347af9c2307a79d76a03771dc87c60948
parentImproved the search form. (diff)
downloadnewspipe-9dd9391b5ab23f2a06200b2870337fcf9f631ad4.tar.gz
newspipe-9dd9391b5ab23f2a06200b2870337fcf9f631ad4.tar.bz2
newspipe-9dd9391b5ab23f2a06200b2870337fcf9f631ad4.zip
Preparing new 9.1.0 release.
-rw-r--r--CHANGELOG.md9
-rw-r--r--README.md3
-rw-r--r--newspipe/templates/edit_bookmark.html93
-rw-r--r--newspipe/templates/layout.html4
-rw-r--r--newspipe/templates/login.html2
-rw-r--r--newspipe/templates/management.html4
-rw-r--r--newspipe/templates/user_stream.html22
-rw-r--r--package.json2
-rw-r--r--poetry.lock9
-rw-r--r--pyproject.toml2
10 files changed, 80 insertions, 70 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a6f29ca3..b044a963 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,15 @@
Newspipe Changelog
==================
+## 9.1.0 (2020-03-12)
+
+ Improvements:
+ * the Web graphical interface is now using Bootstrap 4;
+ * a lot of responsiveness work has been done;
+ * the back-end code has been refactored and cleaned;
+ * the configuration and deployment of Newspipe is now a lot easier.
+
+
## 9.0 (2020-02-27)
New:
diff --git a/README.md b/README.md
index dd648333..681690f6 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,9 @@ $ vim instance/postgresql.py # customize it
$ export Newspipe_CONFIG=postgresql.py
```
+For production you can use [Gunicorn](https://gunicorn.org) or ``mod_wsgi``.
+
+
## License
[Newspipe](https://git.sr.ht/~cedric/newspipe) is under the
diff --git a/newspipe/templates/edit_bookmark.html b/newspipe/templates/edit_bookmark.html
index ee0e0243..bc28b171 100644
--- a/newspipe/templates/edit_bookmark.html
+++ b/newspipe/templates/edit_bookmark.html
@@ -1,67 +1,70 @@
{% extends "layout.html" %}
{% block content %}
<div class="container">
- <div class="well">
- <h3>{{ action }}</h3>
- <form action="" method="post" name="save" class="form-horizontal">
- {{ form.hidden_tag() }}
- <div class="form-group">
- <label for="{{ form.href.id }}" class="col-sm-3 control-label">{{ form.href.label }}</label>
- <div class="col-sm-9">
- {{ form.href(class_="form-control", size="100%") }}
+ <div class="row">
+ <div class="col">
+ <h3>{{ action }}</h3>
+ <form action="" method="post" name="save" class="form-horizontal">
+ {{ form.hidden_tag() }}
+ <div class="form-group">
+ <label for="{{ form.href.id }}" class="col-sm-3 control-label">{{ form.href.label }}</label>
+ <div class="col-sm-9">
+ {{ form.href(class_="form-control", size="100%") }}
+ </div>
+ {% for error in form.href.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
</div>
- {% for error in form.href.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
- </div>
- <div class="form-group">
- <label for="{{ form.title.id }}" class="col-sm-3 control-label">{{ form.title.label }}</label>
- <div class="col-sm-9">
- {{ form.title(class_="form-control", size="100%") }}
+ <div class="form-group">
+ <label for="{{ form.title.id }}" class="col-sm-3 control-label">{{ form.title.label }}</label>
+ <div class="col-sm-9">
+ {{ form.title(class_="form-control", size="100%") }}
+ </div>
+ {% for error in form.title.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
</div>
- {% for error in form.title.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
- </div>
- <div class="form-group">
- <label for="{{ form.description.id }}" class="col-sm-3 control-label">{{ form.description.label }}</label>
- <div class="col-sm-9">
- {{ form.description(class_="form-control", size="100%") }}
+ <div class="form-group">
+ <label for="{{ form.description.id }}" class="col-sm-3 control-label">{{ form.description.label }}</label>
+ <div class="col-sm-9">
+ {{ form.description(class_="form-control", size="100%") }}
+ </div>
+ {% for error in form.description.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
</div>
- {% for error in form.description.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
- </div>
- <div class="form-group">
- <label for="{{ form.tags.id }}" class="col-sm-3 control-label">{{ form.tags.label }}</label>
- <div class="col-sm-9">
- {{ form.tags(class_="form-control", size="100%") }}
+ <div class="form-group">
+ <label for="{{ form.tags.id }}" class="col-sm-3 control-label">{{ form.tags.label }}</label>
+ <div class="col-sm-9">
+ {{ form.tags(class_="form-control", size="100%") }}
+ </div>
+ {% for error in form.tags.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
</div>
- {% for error in form.tags.errors %} <span style="color: red;">{{ error }}<br /></span>{% endfor %}
- </div>
- <div class="form-group">
- <label for="{{ form.shared.id }}" class="col-sm-3 control-label">{{ form.shared.label }}</label>
- <div class="col-sm-9">
- <div class="checkbox">
- {{ form.shared(class_="checkbox", style="margin-left: 0px;") }}
+ <div class="form-group">
+ <label for="{{ form.shared.id }}" class="col-sm-3 control-label">{{ form.shared.label }}</label>
+ <div class="col-sm-9">
+ <div class="checkbox">
+ {{ form.shared(class_="checkbox", style="margin-left: 0px;") }}
+ </div>
</div>
</div>
- </div>
- <div class="form-group">
- <label for="{{ form.to_read.id }}" class="col-sm-3 control-label">{{ form.to_read.label }}</label>
- <div class="col-sm-9">
- <div class="checkbox">
- {{ form.to_read(class_="checkbox", style="margin-left: 0px;") }}
+ <div class="form-group">
+ <label for="{{ form.to_read.id }}" class="col-sm-3 control-label">{{ form.to_read.label }}</label>
+ <div class="col-sm-9">
+ <div class="checkbox">
+ {{ form.to_read(class_="checkbox", style="margin-left: 0px;") }}
+ </div>
</div>
</div>
- </div>
- <div class="form-group">
- <div class="col-sm-offset-3 col-sm-9">
- {{ form.submit(class_="btn btn-primary") }}
+ <div class="form-group">
+ <div class="col-sm-offset-3 col-sm-9">
+ {{ form.submit(class_="btn btn-primary") }}
+ </div>
</div>
- </div>
- </form>
+ </form>
+ </div>
</div>
+
{% if action == _('Add a new bookmark') %}
<div class="row">
<div class="col-md-6 pull-right">
diff --git a/newspipe/templates/layout.html b/newspipe/templates/layout.html
index 45ad7fdf..ad859070 100644
--- a/newspipe/templates/layout.html
+++ b/newspipe/templates/layout.html
@@ -40,7 +40,7 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownRSS" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-rss" aria-hidden="true"></i>&nbsp;{{ _('Feeds') }}</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownRSS">
- <a class="dropdown-item" href="{{ url_for('feeds.feeds') }}">{{ _('Subscribed') }}</a>
+ <a class="dropdown-item" href="{{ url_for('feeds.feeds') }}">{{ _('Feeds') }}</a>
<a class="dropdown-item" href="{{ url_for('feeds.inactives') }}">{{ _('Inactive') }}</a>
<a class="dropdown-item" href="{{ url_for('popular') }}">{{ _('Popular') }}</a>
<a class="dropdown-item" href="{{ url_for('articles.history') }}">{{ _('History') }}</a>
@@ -141,7 +141,7 @@
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<div class="row justify-content-center">
- <div class="col-6">
+ <div class="col-md-6">
{% for category, message in messages %}
<div class="alert alert-{{category}}">
<button type="button" class="close" data-dismiss="alert">&times;</button>
diff --git a/newspipe/templates/login.html b/newspipe/templates/login.html
index d0849c0b..cade2777 100644
--- a/newspipe/templates/login.html
+++ b/newspipe/templates/login.html
@@ -2,7 +2,7 @@
{% block content %}
<div class="container">
<div class="row justify-content-center">
- <div class="col-4">
+ <div class="col-md-6">
<h2>{{ _('Log In') }}</h2>
<form action="{{ url_for('login') }}" method=post>
{{ form.hidden_tag() }}
diff --git a/newspipe/templates/management.html b/newspipe/templates/management.html
index 22ebde8a..eb5dbeb9 100644
--- a/newspipe/templates/management.html
+++ b/newspipe/templates/management.html
@@ -48,7 +48,7 @@
<a href="{{ url_for('articles.export') }}" class="btn btn-primary">{{ _('Export') }}</a>
</div>
</div>
- <br />
+ <hr />
<div class="row">
<div class="col">
<h3 id="import">{{ _('Feeds') }}</h3>
@@ -85,7 +85,7 @@
</form>
</div>
</div>
-
+ <hr />
<div class="row">
<div class="col-md-12">
<br />
diff --git a/newspipe/templates/user_stream.html b/newspipe/templates/user_stream.html
index b05376a8..2cf0ab7a 100644
--- a/newspipe/templates/user_stream.html
+++ b/newspipe/templates/user_stream.html
@@ -2,17 +2,17 @@
{% block content %}
<div class="container">
<div class="row">
- <div class="col-md-8">
+ <div class="col">
<form class="form-inline">
<div class="form-group">
- <label>Filter per category</label>
+ <label>Filter per category</label>&nbsp;
<select class="form-control" id="category-select" name="category_id">
- <option value="0">All</option>
- {% for cur_category in user.categories %}
- <option value="{{cur_category.id}}" {% if cur_category.id==category.id %}selected{% endif %}>{{ cur_category.name }}</option>
- {% endfor %}
+ <option value="0">All</option>
+ {% for cur_category in user.categories %}
+ <option value="{{cur_category.id}}" {% if cur_category.id==category.id %}selected{% endif %}>{{ cur_category.name }}</option>
+ {% endfor %}
</select>
- <button type="submit" class="btn btn-primary mb-2">OK</button>
+ &nbsp;<button type="submit" class="btn btn-primary">OK</button>
</div>
</form>
</div>
@@ -22,20 +22,20 @@
{% if category %}
<div class="row">
- <div class="col-md-8 offset-md-1">
+ <div class="col">
<p class="lead">Articles from the category <a href="{{ url_for('user.profile_public', nickname=user.nickname, category_id=category.id) }}">{{ category.name }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
- <div class="col-md-8 offset-md-1">
+ <div class="col">
{{ pagination.info }}
</div>
</div>
<div class="row">
- <div class="col-md-8 offset-md-1">
+ <div class="col">
{{ pagination.links }}
</div>
</div>
@@ -62,7 +62,7 @@
</div>
<div class="row">
- <div class="col-md-8 offset-md-1">
+ <div class="col">
{{ pagination.links }}
</div>
</div>
diff --git a/package.json b/package.json
index e89900cd..2daf23cc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "newspipe",
- "version": "9.0.0",
+ "version": "9.1.0",
"license": "AGPL-3.0",
"private": true,
"dependencies": {
diff --git a/poetry.lock b/poetry.lock
index e52afc54..a01c0418 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -497,7 +497,7 @@ description = "Database Abstraction Library"
name = "sqlalchemy"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "1.3.13"
+version = "1.3.15"
[package.extras]
mssql = ["pyodbc"]
@@ -752,11 +752,6 @@ markupsafe = [
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
- {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
]
mccabe = [
@@ -867,7 +862,7 @@ soupsieve = [
{file = "soupsieve-2.0.tar.gz", hash = "sha256:e914534802d7ffd233242b785229d5ba0766a7f487385e3f714446a07bf540ae"},
]
sqlalchemy = [
- {file = "SQLAlchemy-1.3.13.tar.gz", hash = "sha256:64a7b71846db6423807e96820993fa12a03b89127d278290ca25c0b11ed7b4fb"},
+ {file = "SQLAlchemy-1.3.15.tar.gz", hash = "sha256:c4cca4aed606297afbe90d4306b49ad3a4cd36feb3f87e4bfd655c57fd9ef445"},
]
sqlalchemy-schemadisplay = [
{file = "sqlalchemy_schemadisplay-1.3.tar.gz", hash = "sha256:0a9f26d77be9d92c9564d87cc17668fe141a816036c5f5d7c8cb053b253957e0"},
diff --git a/pyproject.toml b/pyproject.toml
index 028ccae5..c3ca7692 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "newspipe"
-version = "9.0.0"
+version = "9.1.0"
description = "Newspipe is a web news aggregator."
authors = ["Cédric Bonhomme <cedric@cedricbonhomme.org>"]
license = "AGPL-3.0-or-later"
bgstack15