Merge branch 'develop' into feature/handle_blog_category_not_found
This commit is contained in:
commit
ca605e516b
7 changed files with 93 additions and 179 deletions
|
@ -17,7 +17,6 @@ from django.http import HttpResponseRedirect
|
|||
from django.utils import timezone
|
||||
from django.utils.six import callable, text_type
|
||||
from django.utils.translation import get_language_from_request, ugettext_lazy as _, ungettext as __
|
||||
|
||||
from parler.admin import TranslatableAdmin
|
||||
|
||||
from .cms_appconfig import BlogConfig
|
||||
|
|
|
@ -12,7 +12,9 @@ from menus.menu_pool import menu_pool
|
|||
|
||||
from .cms_appconfig import BlogConfig
|
||||
from .models import BlogCategory, Post
|
||||
from .settings import MENU_TYPE_CATEGORIES, MENU_TYPE_COMPLETE, MENU_TYPE_POSTS, get_setting
|
||||
from .settings import (
|
||||
MENU_TYPE_CATEGORIES, MENU_TYPE_COMPLETE, MENU_TYPE_NONE, MENU_TYPE_POSTS, get_setting,
|
||||
)
|
||||
|
||||
|
||||
class BlogCategoryMenu(CMSAttachMenu):
|
||||
|
@ -59,6 +61,8 @@ class BlogCategoryMenu(CMSAttachMenu):
|
|||
categories_menu = True
|
||||
if config and config.menu_structure in (MENU_TYPE_COMPLETE, MENU_TYPE_POSTS):
|
||||
posts_menu = True
|
||||
if config and config.menu_structure in (MENU_TYPE_NONE, ):
|
||||
return nodes
|
||||
|
||||
used_categories = []
|
||||
if posts_menu:
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-03-04 16:35+0100\n"
|
||||
"POT-Creation-Date: 2017-12-31 12:35+0100\n"
|
||||
"PO-Revision-Date: 2014-03-05 18:09+0100\n"
|
||||
"Last-Translator: Iacopo Spalletti\n"
|
||||
"Language-Team: Italian <i.spalletti@nephila.it>\n"
|
||||
|
@ -19,43 +19,67 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
|
||||
#: admin.py:34
|
||||
#: admin.py:35
|
||||
msgid "site"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:91
|
||||
#: admin.py:103
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:97
|
||||
#: admin.py:109
|
||||
msgid "Images"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:101
|
||||
#: admin.py:113
|
||||
msgid "SEO"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:305
|
||||
#: admin.py:206
|
||||
msgid "Publish selection"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:207
|
||||
msgid "Unpublish selection"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:208
|
||||
msgid "Enable comments for selection"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:209
|
||||
msgid "Disable comments for selection "
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:210
|
||||
msgid "Enable liveblog for selection"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:211
|
||||
msgid "Disable liveblog for selection "
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:405
|
||||
msgid "Generic"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:311
|
||||
#: admin.py:411
|
||||
msgid "Layout"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:318
|
||||
#: admin.py:418
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:324
|
||||
#: admin.py:424
|
||||
msgid "Sitemap"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:330
|
||||
#: admin.py:430
|
||||
msgid "Meta"
|
||||
msgstr ""
|
||||
|
||||
#: admin.py:341 admin.py:349 admin.py:357
|
||||
#: admin.py:441 admin.py:449 admin.py:457
|
||||
msgid "You can provide plain strings, Post model attribute or method names"
|
||||
msgstr ""
|
||||
|
||||
|
@ -287,7 +311,7 @@ msgstr ""
|
|||
msgid "liveblog entries"
|
||||
msgstr ""
|
||||
|
||||
#: liveblog/models.py:97 models.py:173
|
||||
#: liveblog/models.py:97 models.py:176
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
|
||||
|
@ -299,191 +323,195 @@ msgstr ""
|
|||
msgid "thumbnail size"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:64
|
||||
#: models.py:67
|
||||
msgid "parent"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:66
|
||||
#: models.py:69
|
||||
msgid "created at"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:67
|
||||
#: models.py:70
|
||||
msgid "modified at"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:69 models.py:169 models.py:396
|
||||
#: models.py:72 models.py:172 models.py:409
|
||||
msgid "app. config"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:73
|
||||
#: models.py:76
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:74 models.py:174
|
||||
#: models.py:77 models.py:177
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:81
|
||||
#: models.py:84
|
||||
msgid "blog category"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:82
|
||||
#: models.py:85
|
||||
msgid "blog categories"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:138
|
||||
#: models.py:141
|
||||
msgid "author"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:141
|
||||
#: models.py:144
|
||||
msgid "created"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:142
|
||||
#: models.py:145
|
||||
msgid "last modified"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:143
|
||||
#: models.py:146
|
||||
msgid "published since"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:144
|
||||
#: models.py:147
|
||||
msgid "published until"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:145
|
||||
#: models.py:148
|
||||
msgid "featured date"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:146
|
||||
#: models.py:149
|
||||
msgid "publish"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:147
|
||||
#: models.py:150
|
||||
msgid "category"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:149
|
||||
#: models.py:152
|
||||
msgid "main image"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:153
|
||||
#: models.py:156
|
||||
msgid "main image thumbnail"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:158
|
||||
#: models.py:161
|
||||
msgid "main image full"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:162
|
||||
#: models.py:165
|
||||
msgid "enable comments on post"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:164
|
||||
#: models.py:167
|
||||
msgid "Site(s)"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:165
|
||||
#: models.py:168
|
||||
msgid ""
|
||||
"Select sites in which to show the post. If none is set it will be visible in "
|
||||
"all the configured sites."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:175
|
||||
#: models.py:179
|
||||
msgid "abstract"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:176
|
||||
#: models.py:180
|
||||
msgid "post meta description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:178
|
||||
#: models.py:182
|
||||
msgid "post meta keywords"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:180
|
||||
#: models.py:184
|
||||
msgid "post meta title"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:181
|
||||
#: models.py:185
|
||||
msgid "used in title tag and social sharing"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:184
|
||||
#: models.py:188
|
||||
msgid "text"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:189
|
||||
#: models.py:193
|
||||
msgid "enable liveblog on post"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:223
|
||||
#: models.py:200
|
||||
msgid "Related Posts"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:233
|
||||
msgid "blog article"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:224
|
||||
#: models.py:234
|
||||
msgid "blog articles"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:399
|
||||
#: models.py:412
|
||||
msgid "current site"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:399
|
||||
#: models.py:412
|
||||
msgid "Select items from the current site only"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:403
|
||||
#: models.py:416
|
||||
msgid "Plugin template"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:404
|
||||
#: models.py:417
|
||||
msgid "Select plugin template to load for this instance"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:438 models.py:474
|
||||
#: models.py:451 models.py:487
|
||||
msgid "articles"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:439
|
||||
#: models.py:452
|
||||
msgid "The number of latests articles to be displayed."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:441
|
||||
#: models.py:454
|
||||
msgid "filter by tag"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:442
|
||||
#: models.py:455
|
||||
msgid "Show only the blog articles tagged with chosen tags."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:445
|
||||
#: models.py:458
|
||||
msgid "filter by category"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:446
|
||||
#: models.py:459
|
||||
msgid "Show only the blog articles tagged with chosen categories."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:450
|
||||
#: models.py:463
|
||||
#, python-format
|
||||
msgid "%s latest articles by tag"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:470
|
||||
#: models.py:483
|
||||
msgid "authors"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:475
|
||||
#: models.py:488
|
||||
msgid "The number of author articles to be displayed."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:479
|
||||
#: models.py:492
|
||||
#, python-format
|
||||
msgid "%s latest articles by author"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:512
|
||||
#: models.py:525
|
||||
msgid "generic blog plugin"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<h3>{% trans "Categories" %}</h3>
|
||||
<ul class="blog-categories">
|
||||
{% for category in categories %}
|
||||
<li><a href="{% url 'djangocms_blog:posts-category' category=category.slug %}" class="blog-categories-{{ category.count }}">
|
||||
<li><a href="{{ category.get_absolute_url }}" class="blog-categories-{{ category.count }}">
|
||||
{{ category.name }}
|
||||
<span>(
|
||||
{% if category.count > 0 %}
|
||||
|
|
|
@ -13,7 +13,7 @@ Attaching blog to the home page
|
|||
If you want to attach the blog to the home page you have to adapt settings a bit otherwise the
|
||||
"Just slug" permalink will swallow any CMS page you create.
|
||||
|
||||
To avoit this add the following settings to you project::
|
||||
To avoid this add the following settings to you project::
|
||||
|
||||
BLOG_AVAILABLE_PERMALINK_STYLES = (
|
||||
('full_date', _('Full date')),
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'CustomUser'
|
||||
db.create_table('test_utils_customuser', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('password', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('last_login', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
|
||||
('is_superuser', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)),
|
||||
('first_name', self.gf('django.db.models.fields.CharField')(blank=True, max_length=30)),
|
||||
('last_name', self.gf('django.db.models.fields.CharField')(blank=True, max_length=30)),
|
||||
('email', self.gf('django.db.models.fields.EmailField')(blank=True, max_length=75)),
|
||||
('is_staff', self.gf('django.db.models.fields.BooleanField')(default=False)),
|
||||
('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)),
|
||||
('date_joined', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
|
||||
))
|
||||
db.send_create_signal('test_utils', ['CustomUser'])
|
||||
|
||||
# Adding M2M table for field groups on 'CustomUser'
|
||||
m2m_table_name = db.shorten_name('test_utils_customuser_groups')
|
||||
db.create_table(m2m_table_name, (
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||
('customuser', models.ForeignKey(orm['test_utils.customuser'], null=False)),
|
||||
('group', models.ForeignKey(orm['auth.group'], null=False))
|
||||
))
|
||||
db.create_unique(m2m_table_name, ['customuser_id', 'group_id'])
|
||||
|
||||
# Adding M2M table for field user_permissions on 'CustomUser'
|
||||
m2m_table_name = db.shorten_name('test_utils_customuser_user_permissions')
|
||||
db.create_table(m2m_table_name, (
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||
('customuser', models.ForeignKey(orm['test_utils.customuser'], null=False)),
|
||||
('permission', models.ForeignKey(orm['auth.permission'], null=False))
|
||||
))
|
||||
db.create_unique(m2m_table_name, ['customuser_id', 'permission_id'])
|
||||
|
||||
# Adding M2M table for field sites on 'CustomUser'
|
||||
m2m_table_name = db.shorten_name('test_utils_customuser_sites')
|
||||
db.create_table(m2m_table_name, (
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||
('customuser', models.ForeignKey(orm['test_utils.customuser'], null=False)),
|
||||
('site', models.ForeignKey(orm['sites.site'], null=False))
|
||||
))
|
||||
db.create_unique(m2m_table_name, ['customuser_id', 'site_id'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'CustomUser'
|
||||
db.delete_table('test_utils_customuser')
|
||||
|
||||
# Removing M2M table for field groups on 'CustomUser'
|
||||
db.delete_table(db.shorten_name('test_utils_customuser_groups'))
|
||||
|
||||
# Removing M2M table for field user_permissions on 'CustomUser'
|
||||
db.delete_table(db.shorten_name('test_utils_customuser_user_permissions'))
|
||||
|
||||
# Removing M2M table for field sites on 'CustomUser'
|
||||
db.delete_table(db.shorten_name('test_utils_customuser_sites'))
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']"})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission', 'ordering': "('content_type__app_label', 'content_type__model', 'codename')"},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'contenttypes.contenttype': {
|
||||
'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'", 'ordering': "('name',)"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
'sites.site': {
|
||||
'Meta': {'object_name': 'Site', 'db_table': "'django_site'", 'ordering': "('domain',)"},
|
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'test_utils.customuser': {
|
||||
'Meta': {'object_name': 'CustomUser'},
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'blank': 'True', 'max_length': '75'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Group']", 'related_name': "'user_set'"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'blank': 'True', 'max_length': '30'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['sites.Site']"}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'blank': 'True', 'to': "orm['auth.Permission']", 'related_name': "'user_set'"}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['test_utils']
|
|
@ -1,2 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from django.utils.translation import ugettext_lazy as _
|
Loading…
Reference in a new issue