add aggregator app

This commit is contained in:
2019-01-28 00:20:09 +03:00
parent 8643fc42f9
commit b7e68abb03
29 changed files with 665 additions and 105 deletions

View File

@@ -15,6 +15,12 @@
<span>Feeds</span>
</a>
</li>
<li class="{% if sidebar_section == 'aggregator' %}nav-active{% endif %}">
<a href="{% url 'cabinet:aggregator:index' %}">
<i class="fas fa-copy" aria-hidden="true"></i>
<span>Aggregator</span>
</a>
</li>
</ul>
</nav>
@@ -24,14 +30,16 @@
<div class="nav-subtitle">Admin</div>
<nav class="nav-main" role="navigation">
<ul class="nav nav-main">
<li class="nav-parent {% if sidebar_section %}nav-active{% endif %}">
<li class="nav-parent {% if sidebar_section|slice:':6' == 'admin_' %}nav-expanded nav-active{% endif %}">
<a href="#">
<i class="fas fa-cog" aria-hidden="true"></i>
<span>Configs</span>
</a>
<ul class="nav nav-children">
{% for slug, title in admin_configs.items %}
<li><a href="{% url 'cabinet:admin_config' slug=slug %}" class="nav-link">{{ title }}</a></li>
<li class="{% if sidebar_section == 'admin_'|add:slug %}nav-active{% endif %}">
<a href="{% url 'cabinet:admin_config' slug=slug %}" class="nav-link">{{ title }}</a>
</li>
{% endfor %}
</ul>
</li>

View File

@@ -8,7 +8,7 @@
{% endblock %}
{% block content %}
<form action="" method="post" class="card">
<form action="" method="post" enctype="multipart/form-data" class="card">
{% csrf_token %}
<header class="card-header">
<h2 class="card-title">Config</h2>

View File

@@ -9,5 +9,6 @@ urlpatterns = [
path('login/', LoginView.as_view(), name='login'),
path('logout/', LogoutView.as_view(), name='logout'),
path('feeds/', include('feeds.urls', namespace='feeds')),
path('aggregator/', include('aggregator.urls', namespace='aggregator')),
path('admin/config/<slug>/', AdminConfigView.as_view(), name='admin_config'),
]

View File

@@ -6,13 +6,16 @@ class CabinetViewMixin(LoginRequiredMixin):
title = 'No title'
sidebar_section = None
def get_sidebar_section(self):
return self.sidebar_section
def get_title(self):
return self.title
def get_context_data(self, **kwargs):
ctx = super(CabinetViewMixin, self).get_context_data(**kwargs)
ctx['title'] = self.get_title()
ctx['sidebar_section'] = self.sidebar_section
ctx['sidebar_section'] = self.get_sidebar_section()
return ctx

View File

@@ -30,6 +30,9 @@ class LoginView(BaseLoginView):
class AdminConfigView(CabinetViewMixin, FormView):
template_name = 'cabinet/admin_config.html'
def get_sidebar_section(self):
return 'admin_{}'.format(self.get_form_class().slug)
def get_success_url(self):
return ''