Coder Social home page Coder Social logo

django-blog-zinnia / cmsplugin-zinnia Goto Github PK

View Code? Open in Web Editor NEW
53.0 53.0 46.0 462 KB

Bridge between django-blog-zinnia and django-cms

License: BSD 3-Clause "New" or "Revised" License

Makefile 1.98% Python 80.62% HTML 10.95% CSS 5.27% JavaScript 1.18%

cmsplugin-zinnia's People

Contributors

bittner avatar cgenie avatar chris7 avatar fantomas42 avatar lacrymology avatar pr4th4m avatar pxlbuzzard avatar romlok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cmsplugin-zinnia's Issues

menu entries fail to load / URL Namespace failures

I have just got the app installed no settings changed yet and i get this set of errors.

    Menu CategoryMenu cannot be loaded. Please, make sure all its urls exist and can be resolved.
    Menu TagMenu cannot be loaded. Please, make sure all its urls exist and can be resolved.
    Menu AuthorMenu cannot be loaded. Please, make sure all its urls exist and can be resolved.

these show up in the top of the django-cms menu/sidebar thing.

Are the defaults as documented or is the issue at my end?

Recommended way of creating content programmatically, or API

Is there a recommended way of creating content, especially with django CMS placeholders? There doesn't seem to be an API, at least not exposed, promoted or documented.

I need to create content (with a Django management command) on an empty Zinnia blog + django CMS 3.2 combo. django CMS has the create_page, add_plugin, etc. functions as part of their API. Something similar would be nice in Zinnia.

Release to remove Django check warnings

I went to fix the check warnings raised by Django, only to notice that they've actually already been fixed in the develop branch. Are there any plans to bump the version so that I can get rid of the warnings?

Content Field with Editor is missing

When try to create an new entry all fields are shown but the editor for the content is missing!

I'm using following versions in my djangocms

argparse (1.2.1)
beautifulsoup4 (4.3.2)
cmsplugin-filer (0.10)
cmsplugin-zinnia (0.6)
dj-database-url (0.3.0)
Django (1.6.8)
django-appconf (0.6)
django-autocomplete-light (1.4.14)
django-blog-zinnia (0.14.2)
django-ckeditor-updated (4.4.4)
django-classy-tags (0.5.1)
django-cms (3.0.6)
django-contrib-comments (1.5)
django-filer (0.9.7)
django-mptt (0.6.1)
django-polymorphic (0.6)
django-reversion (1.8.5)
django-sekizai (0.7)
django-tagging (0.3.3)
django-tinymce (1.5.3)
django-xmlrpc (0.1.5)
djangocms-admin-style (0.2.2)
djangocms-column (1.5)
djangocms-file (0.1)
djangocms-flash (0.1)
djangocms-googlemap (0.2)
djangocms-inherit (0.1)
djangocms-installer (0.5.4)
djangocms-link (1.5)
djangocms-picture (0.1)
djangocms-style (1.4)
djangocms-teaser (0.1)
djangocms-text-ckeditor (2.4.1)
djangocms-video (0.1)
easy-thumbnails (2.2)
html5lib (0.999)
imagestore (2.7.7)
lxml (3.4.0)
Pillow (2.6.1)
pip (1.5.6)
psycopg2 (2.5.4)
pyparsing (2.0.3)
pytz (2014.7)
setuptools (3.6)
six (1.8.0)
sorl-thumbnail (11.12)
South (1.0.1)
wsgiref (0.1.2)
zinnia-wysiwyg-ckeditor (1.1)

My configuration

TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
'django.template.loaders.eggs.Loader'
)

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware'
)

TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.i18n',
'django.core.context_processors.debug',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.csrf',
'django.core.context_processors.tz',
'sekizai.context_processors.sekizai',
'django.core.context_processors.static',
'cms.context_processors.cms_settings',
'zinnia.context_processors.version',
'imagestore.context_processors.imagestore_processor'
)

TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'suzi', 'templates'),
)

INSTALLED_APPS = (
'djangocms_admin_style',
'djangocms_text_ckeditor',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'django_comments',
'mptt',
'menus',
'south',
'sekizai',
'djangocms_style',
'djangocms_column',
'djangocms_file',
'djangocms_flash',
'djangocms_googlemap',
'djangocms_inherit',
'djangocms_link',
'djangocms_picture',
'djangocms_teaser',
'djangocms_video',
'reversion',
'filer',
'easy_thumbnails',
'cmsplugin_filer_file',
'cmsplugin_filer_folder',
'cmsplugin_filer_link',
'cmsplugin_filer_image',
'cmsplugin_filer_teaser',
'cmsplugin_filer_video',
'tagging',
'zinnia',
'zinnia_ckeditor',
'cms',
'cmsplugin_zinnia',
'imagestore',
'imagestore.imagestore_cms',
'autocomplete_light',
'sorl.thumbnail',
'suzi'
)

LANGUAGES = (
## Customize this
('de', gettext('de')),
('en', gettext('en')),
)

CMS_LANGUAGES = {
## Customize this
'default': {
'public': True,
'hide_untranslated': False,
'redirect_on_fallback': True,
},
1: [
{
'public': True,
'code': 'de',
'hide_untranslated': False,
'name': gettext('de'),
'redirect_on_fallback': True,
},
{
'public': True,
'code': 'en',
'hide_untranslated': False,
'name': gettext('en'),
'redirect_on_fallback': True,
},
],
}

CMS_TEMPLATES = (
## Customize this
('page.html', 'Page'),
('feature.html', 'Page with Feature')
)THUMBNAIL_HIGH_RESOLUTION = True

THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
#'easy_thumbnails.processors.scale_and_crop',
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
'easy_thumbnails.processors.filters'
)

SOUTH_MIGRATION_MODULES = {
'zinnia': 'suzi.migrations.zinnia',
}

ZINNIA_ENTRY_BASE_MODEL = 'cmsplugin_zinnia.placeholder.EntryPlaceholder'

CMS_PERMISSION = True

CMS_PLACEHOLDER_CONF = {}

Compatibility with django-cms 3.0

Hi
Is the cmsplugin-zinnia compatible with django-cms 3.0? I am quite new to django-cms. However migrating my working website based on django-cms 2.4.3 to 3.0 I am facing an issue when zinnia installed:
Exception Value:
'EntryPlaceholderAdmin.fieldsets[1][1]['fields']' refers to field 'content_placeholder' that is missing from the form.
Marek

cmsplugin zinnia issues with django 1.7 at Author model

After updating django blog zinnia to the development version. I get the error below when using django 1.7

File "/opt/pycharm/helpers/pycharm/django_manage.py", line 23, in
run_module(manage_file, None, 'main', True)
File "/usr/lib/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/data/Code/chama/server/medmobileltd/manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 354, in execute
django.setup()
File "/usr/local/lib/python2.7/dist-packages/django/init.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/apps.py", line 22, in ready
self.module.autodiscover()
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/init.py", line 23, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/usr/local/lib/python2.7/dist-packages/django/utils/module_loading.py", line 74, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/usr/local/lib/python2.7/dist-packages/cms/admin/init.py", line 11, in
plugin_pool.plugin_pool.discover_plugins()
File "/usr/local/lib/python2.7/dist-packages/cms/plugin_pool.py", line 36, in discover_plugins
load('cms_plugins')
File "/usr/local/lib/python2.7/dist-packages/cms/utils/django_load.py", line 56, in load
get_module(app, modname, verbose, failfast)
File "/usr/local/lib/python2.7/dist-packages/cms/utils/django_load.py", line 40, in get_module
module = import_module(module_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 46, in import_module
import(name)
File "/usr/local/lib/python2.7/dist-packages/cmsplugin_zinnia/cms_plugins.py", line 13, in
from zinnia.models import Author
ImportError: cannot import name Author

I think it has to be similar to the issue being addressed at Fantomas42/django-blog-zinnia#342

Include documentation to address "Unknown Column" error

There are a number of blog posts online that document how to fix the following error:

Unknown column 'zinnia_entry.content_placeholder_id' in 'field list'

None of these worked for me. Instead I did the following on a vanilla db which is probably worthwhile mentioning in the install docs.

python manage.py syncdb --all
python manage.py migrate --fake

Using the 'reset zinnia' approach never yielded success for me with recent versions.

Credit goes to IRC user 'bikeshedder' for reminding me of this workflow.

Custom template does not render in latest entries, it defaults to entry_list.html

django 1.11.12
django cms 3.5.xx

CMSPLUGIN_ZINNIA_TEMPLATES = [
('cmsplugin_zinnia/entry_custom.html', 'Entry custom'),
]

in class CMSLatestEntriesPlugin(ZinniaCMSPluginBase): I added

def get_render_template(self, context, instance, placeholder):
    return instance.template_to_render or 'cmsplugin_zinnia/entry_list.html'

seems to be working.

using cmsplugin-zinnia with django-modeltranslation

This is copied verbatim from the email, sorry

Hello, I've been trying to make the cms-plugin able entry model in
cmsplugin-zinnia translatable via django-modeltranslation.

I've ended up having to patch for so many incompatibilities that I'm
almost thinking I'd better just throw cmsplugin-zinnia away and make
my own model with simpletranslation, which is django-cms standard
translation system, but I think that'd require massive template
adjustments.

So, I wonder if any cares to take a look at all I've had to do, and
maybe point out some better ways of fixing some issues (there's even a
metaclass)

here are the model and the admin files.

TemplateSyntaxError at /blog/

Hi, Im getting this error after upgrading dhango-zinnia and cmsplugin-zinnia

TemplateSyntaxError at /blog/
'zinnia_tags' is not a valid tag library: Template library zinnia_tags not found, tried 

NoReverseMatch Error When Accessing App Hook

When I navigate to a page with a cmsplugin-zinnia app_hoook the following error
is returned:

NoReverseMatch at /blog/

u'zinnia' is not a registered namespace

Request Method:     GET
Request URL:        http://127.0.0.1:8000/blog/
Django Version:     1.7.4
Exception Type:     NoReverseMatch
Exception Value:    u'zinnia' is not a registered namespace

In template <home>/django-blog-zinnia/zinnia/templates/zinnia/tags/
categories.html, error at line 5

...

{% load i18n %}
<ul class="{% if not categories %}no-{% endif %}categories">
{% for category in categories %}
    <li{% if category.slug == context_category.slug %} class="current"{% endif %}>
        <a href="{{ category.get_absolute_url }}"
        title="{% blocktrans %}Show all entries in {{ category }}{% endblocktrans %}">{{ category }}</a>
    {% blocktrans count entry_count=category.count_entries_published %}{{ entry_count }} entry{% plural %}{{ entry_count }} entries{% endblocktrans %}
    </li>
    {% empty %}
        <li>
            {% trans "No categories yet." %}
        </li>
{% endfor %}
</ul>

My system has the following setup:

  • django-blog-zinnia==0.15.1
  • django-cms==3.0.9
  • djangocms-installer==0.7.2
  • cmsplugin-zinnia==0.7

I installed DjangoCMS with djangocms-installer, installed zinnia, set up
django-blog-zinnia as per the README, and set up cmsplugin-zinnia as per the
README, paying close attention to do the following:

  1. Keep the zinnia URL in my main urls.

    url(r'^weblog/', include('zinnia.urls', namespace='zinnia'))
    
  2. Add a cms page with the slug 'blog'

  3. Create a category and entry. Publish the category and entry.

  4. On the "blog" page, add the app hook "Published Categories"

  5. Published categories are listed.

  6. Once the app hook is added, remove the zinnia URL from my main urls

  7. Restart the server.

  8. Navigate to the '/blog/' page. The error occurs.

If I leave the zinnia url in my main urls the '/blog/' page does render, but
when I navigate to one of the categories, django can't resolve the URL (as the
documentation states).

Any ideas? Thanks.

syncdb issue on fresh install

I just installed the plugin on a freshly installed virtualenv and i get this error :

cmsplugin_zinnia.latestentriesplugin: 'tags' has an m2m relation with model <class 'tagging.models.Tag'>,
which has either not been installed or is abstract.

versions:

cmsplugin-zinnia==0.5.1
django-blog-zinnia==0.13

How to get Categories

When creating templates how can you display the Category. I've tried {{ category }} and its doesnt work.

Thanks.

ImportError: cannot import name 'Author'

I'm attempting to use cmsplugin_zinnia with the django-1.7 feature branch of django-blog-zinnia. When running:

python manage.py syncdb --all

I receive an ImportError exception: cannot import name 'Author'. I'm using Python 3.4.1, Django 1.7.1 and Heroku's Cedar stack.

TypeError Exception Value: argument of type 'NoneType' is not iterable

Environment:

Request Method: GET
Request URL: http://staging.thequotientgroup.com/en-us/admin/zinnia/

Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.humanize',
'django.contrib.markup',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.syndication',
'django.contrib.comments',
'cumulus',
'cms',
'cms_taggit',
'mptt',
'menus',
'sekizai',
'reversion',
'cms.plugins.flash',
'cms.plugins.googlemap',
'cms.plugins.link',
'cms.plugins.snippet',
'cms.plugins.text',
'cms.plugins.twitter',
'cms.plugins.file',
'cms.plugins.picture',
'cms.plugins.teaser',
'cms.plugins.video',
'cmsplugin_contact',
'tagging',
'zinnia',
'zinnia.plugins',
'easy_thumbnails',
'articles',
'south',
'social_auth',
'residence',
'debug_toolbar']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'cms.middleware.multilingual.MultilingualURLMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware')

Template error:
In template the_quotient_group/local/lib/python2.7/site-packages/zinnia/templates/admin/zinnia/widgets/content_stats.html, error at line 11
Caught AssertionError while rendering: latest() requires either a field_name parameter or 'get_latest_by' in the model
1 : {% extends "admin/zinnia/widgets/base.html" %}

2 : {% load i18n zinnia_tags %}

3 :

4 : {% block module_id %}contents{% endblock %}

5 :

6 : {% block summary %}{% trans "Today" %}{% endblock %}

7 :

8 : {% block title %}{% trans "Today" %}{% endblock %}

9 :

10 : {% block content %}

11 : {% zinnia_statistics "admin/zinnia/widgets/_content_stats.html" %}

12 : {% endblock %}

13 :

/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
response = response.render() ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/response.py in render
self.content = self.rendered_content ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/response.py in rendered_content
content = template.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
def _render(self, context):
return self.nodelist.render(context)
def render(self, context):
"Display stage -- can be called many times"
context.render_context.push()
try:
return self._render(context) ...
finally:
context.render_context.pop()
def compile_string(template_string, origin):
"Compiles template_string into NodeList ready for rendering"
if settings.TEMPLATE_DEBUG:
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
result = block.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return self.render_template(self.template, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render_template
output = template.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
return self._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/loader_tags.py in render
result = block.nodelist.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/debug.py in render_node
return node.render(context) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/template/base.py in render
_dict = func(_resolved_args, *_resolved_kwargs) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/zinnia/templatetags/zinnia_tags.py in zinnia_statistics
total_words_entry += e.word_count ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/zinnia/models_bases/entry.py in word_count
return len(strip_tags(self.html_content).split()) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/utils/functional.py in wrapper
return func(_args, *_kwargs) ...
▶ Local vars
/var/www/vhosts/the_quotient_group/local/lib/python2.7/site-packages/django/utils/html.py in strip_tags
if not ('<' in value or '>' in value): ...
▶ Local vars

Exception Type: TemplateSyntaxError at /admin/zinnia/
Exception Value: Caught AssertionError while rendering: latest() requires either a field_name parameter or 'get_latest_by' in the model

Adding extension app to installed app leads to error

Hi,

i added an extension to my django-cms 'zinnia_association' which extends the entry with a foreign key. I also added an admin.py with the integration for the admin panel. I followed the guide in the documentation. Now when i add 'zinnia_association' to the INSTALLED_APPS (after zinnia) I get the error:

Unhandled exception in thread started by <function wrapper at 0x104bf6320>
Traceback (most recent call last):
  File "/myproject/venv/lib/python2.7/site-packages/django/utils/autoreload.py", line 93, in wrapper
    fn(*args, **kwargs)
  File "/myproject/bbd/venv/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 101, in inner_run
    self.validate(display_num_errors=True)
  File "/myproject/venv/lib/python2.7/site-packages/django/core/management/base.py", line 314, in validate
    raise CommandError("One or more models did not validate:\n%s" % error_text)
django.core.management.base.CommandError: One or more models did not validate:
cmsplugin_zinnia.latestentriesplugin: 'categories' has an m2m relation with model zinnia.Category, which has either not been installed or is abstract.
cmsplugin_zinnia.latestentriesplugin: 'authors' has an m2m relation with model zinnia.Author, which has either not been installed or is abstract.
cmsplugin_zinnia.selectedentriesplugin: 'entries' has an m2m relation with model <class 'zinnia.models.entry.Entry'>, which has either not been installed or is abstract.

Latest release not working -> import error

I don't know why, but the 0.3 of cmsplugiun-zinnia on pypi has a wrong "from zinnia.models import EntryAbstractClass" in placeholder.py, instead of the "from zinnia.models.entry import EntryAbstractClass" which was committed beore that release, in the git depot. So cmspluginzinnia fails if we don't use a fresh checkout instead of a pypi release.

AttributeError on rendering RSS or when trying to "ping" after posting a comment

I've just upgraded to the latest Zinnia. I've updated all the things I can find which need updating, and it appears to work perfectly to the user.
Watching the dev server output, however, shows this traceback every time a comment is posted (successfully, I might add):

Exception in thread Thread-39:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/home/mel/.virtualenvs/easym-django/local/lib/python2.7/site-packages/zinnia/ping.py", line 99, in run
    external_urls = self.find_external_urls(self.entry)
  File "/home/mel/.virtualenvs/easym-django/local/lib/python2.7/site-packages/zinnia/ping.py", line 118, in find_external_urls
    soup = BeautifulSoup(entry.html_content)
  File "/home/mel/.virtualenvs/easym-django/local/lib/python2.7/site-packages/cmsplugin_zinnia/placeholder.py", line 39, in html_content
    return render_placeholder(self.content_placeholder, context)
  File "/home/mel/.virtualenvs/easym-django/local/lib/python2.7/site-packages/cms/plugin_rendering.py", line 92, in render_placeholder
    context.push()
AttributeError: 'NoneType' object has no attribute 'push'

It appears to be that EntryPlaceholder.acquire_context isn't finding any context argument in the stack. Indeed, it seems the only args which show up in the inspect.stack() are five selfs, with one of them accompanied by an entry.

Versions:
Django==1.5.1
cmsplugin-zinnia==0.4
django-blog-zinnia==0.12.3 (upgraded from 0.11.2)
django-cms==2.4.2
(and loads more stuff, if you need versions of the deps, etc.)

Permissions issue when using EntryPlaceholder?

All seems well with superusers, but regular staff users get "You do not have permission to add a plugin" when trying to add plugins to the entry placeholder, despite being given all possible permissions.

cmsplugin_zinnia.placeholder.EntryPlaceholder cannot be imported with django-reversion 1.8.0

I am not sure if I should report this here (or in django-reversion), but I guess people with the same problem with the same problem will end here. Anyway, my apologizes if I am reporting this in the wrong place.

I upgraded django-blog-zinnia (0.13) and cmsplugin-zinnia (0.5.1) and starting to struggle with this problem:

ImproperlyConfigured: cmsplugin_zinnia.placeholder.EntryPlaceholder cannot be imported.

Not sure how (I think it was because I run pip install django-blog-zinnia --upgrade), I ended upgrading many other packages, and started to get the above errors.

I finally figure out that it was django-reversion version 1.8. I downgraded to version 1.7.1 and I get rid off the error.

No more editor

Hi,

after an update to django-cms 3.0.6, the HTML editor is not loading anymore when I create/update an entry. I just see raw HTML in a textarea.

My versions :

  • django-cms 3.0.6
  • zinnia 0.14.2
  • cmsplugin-zinnia 0.6
  • djangocms-text-ckeditor 2.4.1

Any idea?

PS: I was not sure about where to create this issue...

NoReverseMatch : Reverse for 'zinnia_entry_archive_index' with arguments '()'

Dear Support,

Does this work with the new django-cms 3.0b4.dev13? I installed the app and zinnia, but I got some URL related error.

Do I need to include them into my urls.py even I am using this plugin?

Reverse for 'zinnia_entry_archive_index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Request Method: POST
Request URL:    http://tourguide-test.triosky.com/admin/zinnia/entry/add/
Django Version: 1.6.2
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'zinnia_entry_archive_index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Exception Location: /sites/.virtualenvs/tour/local/lib/python2.7/site-packages/django/core/urlresolvers.py in _reverse_with_prefix, line 429
Python Executable:  /sites/.virtualenvs/tour/bin/python
Python Version: 2.7.3
Python Path:    
['/sites/trip/code/django-tourguide',
 '/sites/.virtualenvs/tour/bin',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/translate_toolkit-1.11.0-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/djangocms_admin_style-0.2.0-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/django_sekizai-0.7-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/html5lib-1.0b3-py2.7.egg',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages/django_classy_tags-0.5-py2.7.egg',
 '/sites/.virtualenvs/tour/lib/python2.7',
 '/sites/.virtualenvs/tour/lib/python2.7/plat-linux2',
 '/sites/.virtualenvs/tour/lib/python2.7/lib-tk',
 '/sites/.virtualenvs/tour/lib/python2.7/lib-old',
 '/sites/.virtualenvs/tour/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/sites/.virtualenvs/tour/local/lib/python2.7/site-packages']
Server time:    Thu, 13 Mar 2014 01:41:35 +0000

NoReverseMatch raised if blog apphook doesn't exist

If cmsplugin_zinnia is in INSTALLED_APPS and the {% menu %} templatetag is called from the base template, or wherever, and no page is created linked with the zinnia apphook, then a NoReverseMatch is raised.

I don't really understand why this menu entry is even processed if there's no apphooked page

I'm not sure if this is a cmsplugin_zinnia or a django-cms issue

Django 1.8 Migration

Right now Django 1.8 is not supported. When starting my local test environment, I get the following output:

[...]
  File "~/.virtualenvs/django1.8/local/lib/python2.7/site-packages/cmsplugin_zinnia/cms_plugins.py", line 21, in <module>
    from cmsplugin_zinnia.forms import CalendarEntriesAdminForm
  File "~/.virtualenvs/django1.8/local/lib/python2.7/site-packages/cmsplugin_zinnia/forms.py", line 8, in <module>
    class CalendarEntriesAdminForm(forms.ModelForm):
  File "~/.virtualenvs/django1.8/local/lib/python2.7/site-packages/django/forms/models.py", line 274, in __new__
    "needs updating." % name
django.core.exceptions.ImproperlyConfigured: Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form CalendarEntriesAdminForm needs updating.

appending zinnia in the application namespace

Hey,

After some time spent wondering why django-cms wasn't allowing me to add 'zinnia' to the application namespace in the page setup in the admin, I came across the option of adding the app_name = 'zinnia' field to the ZinniaAppHook, which sets the application namespace in the cms_app.py.

Like this:

class ZinniaApphook(CMSApp):
    """
    Zinnia's Apphook
    """
    name = _('Zinnia Blog')
    urls = APP_URLS
    menus = app_menus
    app_name = 'zinnia' ### This line here ###

I was wondering if you guys wouldn't mind adding that in there. It could save others at least a few mins.

Django 1.5 causes "TypeError: __init__() got an unexpected keyword argument 'verify_exists'"

When doing syncdb with Django 1.5 this error is triggered:

...lib/python2.7/site-packages/zinnia/models/entry.py:496: RuntimeWarning: cmsplugin_zinnia.placeholder.EntryPlaceholder cannot be imported
RuntimeWarning)

TypeError: init() got an unexpected keyword argument 'verify_exists'

Apparently django.db.models.fields.URLField.verify_exists parameter has been removed from Django 1.5 due to some security and performance issues. More about that here:
http://stackoverflow.com/questions/10884053/why-do-i-get-this-error-when-i-run-python-manage-py-syncdb-all

Is there a way to get around this without downgrading Django?

CategoryMenu, TagMenu, AuthorMenu cannot be loaded

I get the following errors:

Menu CategoryMenu cannot be loaded. Please, make sure all its urls exist and can be resolved
Menu TagMenu cannot be loaded. Please, make sure all its urls exist and can be resolved.
Menu AuthorMenu cannot be loaded. Please, make sure all its urls exist and can be resolved

I know that this issue was closed under issue #29 but I am getting the same issue now using the following versions: Django 1.7.3, Django CMS 3.0.9, Zinnia 0.15.1, and cmsplugin-zinnia 0.7. From my understanding of issue #29, the key to resolving this was using the latest version of zinnia, which we are right now.

Under installed apps, we have the following:
INSTALLED_APPS = (
'djangocms_admin_style',
'djangocms_text_ckeditor',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'django.contrib.messages',
'cms',
'menus',
'sekizai',
'django_comments',
'mptt',
'tagging',
'zinnia',
'cmsplugin_zinnia',
'reversion',
'rest_framework',
)

The weird thing about this issue is that it is inconsistent on each page load. Sometimes it pops up, and other times it doesn't, and this affects our deployment as we get an 502 Bad Gateway from nginx and in the uwsgi logs we were getting a:
Django.db.utils.OperationalError: SSL error decryption failed or bad record mac

Any help would be much appreciated.

Tighter integration with django CMS 3 for front-end editing with EntryPlaceholder

Since django-CMS 3.0 it is not possible anymore to edit django-CMS placeholders in the Admin. Editing blog entries is now a mixture of backend and frontend editing when the EntryPlaceholder is used (see #39 for details on editing).

Proposed Solution

When cmsplugin_zinnia is used with the EntryPlaceholder adding and editing blog posts should be fully possible from the frontend. User interaction should mimic django CMS 3's frontend editing closely.

  1. Zinnia > New Entry ... (from the django CMS toolbar), which opens the Admin in the sidebar, may offer the Excerpt plain text box in addition to Title, Status and Image.
  2. When the new blog entry is saved a django-CMS Text plugin should be created as the first, default placeholder automatically. This placeholder should be pre-filled with the text entered in the Excerpt text box.
  3. The newly created blog entry should be show on the website and suggest to continue editing. Alternatively, a list of all entries (the blog index) could be shown, and we scroll to the newly created entry.
  4. The Status may correspond to statuses of django CMS as follows:
    1. blog entries with "draft" status are visible and editable only when django CMS 3's edit slider is set to "draft".
    2. blog entries with "hidden" status are visible and editable only when django CMS 3's edit slider is set to "draft".
    3. only blog entries with "published" status are visible when django CMS 3's edit slider is set to "live".
  5. All other data (Publication, Discussion, Privacy, etc.) should possibly be editable through double-clicking somewhere on a blog entry on the frontend. A modal popup window (layer) should be shown to edit the related data (similar to editing placeholders).

Align draft/publish with django CMS

An additional enhancement would be to have a real "draft" version of blog posts, which can be edited and saved without immediately propagating to the published website. As a result, the Zinnia blog and django CMS would both follow the same draft/publish paradigma from a user experience point of view.

Using entry_detailed template causes "TemplateDoesNotExist" error

If I choose that one in the templates list it cannot render.

The error comes from the line in the template:
{% include object.content_template with object_content=object.html_content|truncatewords_html:100|safe continue_reading=1 %}

Where object.content == None, I don't know where that comes from.

Extending the Templates

When I try to extend the templates I get the error:

TypeError: can only concatenate list (not "tuple") to list

Can't seem the figure out the correct format for the list for extending the templates.

Thanks!

ImportError: cannot import name render_placeholder

Hello. I'm getting such error.
Django 1.9.9, Django-CMS 3.4.0, Zinnia 0.18.

File "/usr/home/jeltoesolnce/.virtualenvs/cms3/lib/python2.7/site-packages/cmsplugin_zinnia/admin.py", line 6, in <module> from cms.plugin_rendering import render_placeholder ImportError: cannot import name render_placeholder

New migrations are made when setting CMSPLUGIN_ZINNIA_TEMPLATES

If you set the CMSPLUGIN_ZINNIA_TEMPLATES, and every time you change it, django will make a new migration. Obviously this is not good since you don't want to accidentally make new migrations in 3rd party apps.

I believe the solution would be to manually set the choices arg on template_to_render inside the initial migration to the TEMPLATES setting found in models.py. That would make django dynamically check that variable rather than the hardcoded lists that are currently in the initial migration.

Uninformative assertionerror on new install

Hi,

I've the following virtualenv:

$ pip freeze -l
Django==1.5.5
Jinja2==2.7.2
MarkupSafe==0.18
Pillow==2.0.0
Pygments==1.6
South==0.8.1
Sphinx==1.0.7
beautifulsoup4==4.3.2
cmsplugin-filer==0.9.5
cmsplugin-zinnia==0.5.1
distribute==0.6.24
django-appconf==0.6
django-blog-zinnia==0.13
django-classy-tags==0.4
django-cms==2.4.3
-e git+https://github.com/RichardOtvos/django-cms-contactform@40980ea743ad7534d4d0c3dbb19035b4d643158e#egg=django_cms_contactform-dev
django-compressor==1.3
django-debug-toolbar==1.0.1
django-extensions==1.3.3
django-filer==0.9.5
django-model-utils==2.0
django-mptt==0.5.2
-e git://github.com/jbalogh/django-nose.git@4ffb4fab18957d7c913d7f132dcd27b50a30f447#egg=django_nose-dev
django-polymorphic==0.5.3
django-reversion==1.7
django-sekizai==0.7
django-sha2==0.4
django-tagging==0.3.1
django-xmlrpc==0.1.5
docutils==0.11
easy-thumbnails==1.4
html5lib==1.0b1
ipdb==0.8
ipython==1.1.0
mock==0.7.2
nose==1.0.0
psycopg2==2.5.2
py-bcrypt==0.4
pyparsing==2.0.1
pytz==2013.9
six==1.3.0
sqlparse==0.1.10

Running syncdb --noinput --migrate throws an AssertionError. As commenting out cmsplugin_zinnia in INSTALLED_APPS avoids the error, I guess it's due to the plugin. Could someone give any extra info about this issue?

Cannot create custom abstract model

Hello.
In my recent project i use django-cms with zinnia and i want to connect them together by this awesome plugin. However i must overwrite zinnia AbstractEntry model for several reasons. In plain zinnia i would only change ZINNIA_ENTRY_BASE_MODEL setting, but with this plugin i have to inherit from EntryPlaceholder model which inherits from zinnia AbstractEntry. Is there a way to change this behaviour? Is it possible that EntryPlaceholder model would inherit from custom model?

Thanks.

Convert blog entries from base Entry model to PlaceholderEntry model (cmsplugin management command, django-cms)

(Originally posted as django-blog-zinnia issue #398)
As a django CMS 2.4.3 + Zinnia 0.13 + cmsplugin-zinnia 0.5.1 user I want to convert all blog entries from the base Entry model to the PlaceholderEntry model, so that I can have a unified frontend editing experience after migrating to django CMS 3 (and the latest Zinnia).

I've tried to discuss this on the mailing list, to understand whether there are implementations to accomplish this task already. Until now there has been no response to this yet, so I will start implementing a management command in the cmsplugin-zinnia myself.

Any hints or suggestions are still very welcome!

EntryPlaceholder admin

When I use EntryPlaceholder with Zinnia 0.12.2, cmsplugin-zinnia 0.4 and Django 1.5, Django CMS 2.4.3, I got this error

ImproperlyConfigured at /novinky/2013/11/10/treti-novinka/
'EntryPlaceholderAdmin.fieldsets[1][1]['fields']' refers to field 'content_placeholder' that is missing from the form.

Django Version: 1.5
Exception Type: ImproperlyConfigured
Exception Value: 'EntryPlaceholderAdmin.fieldsets[1][1]['fields']' refers to field 'content_placeholder' that is missing from the form.
Python Version: 2.7.3

Django CMS 3 Templates

The switch to frontend only editing makes the current zinnia admin interface and website templates less than ideal under Django-CMS 3. Need to create new zinnia override templates to integrate the frontend editing behavior and refactor the placeholder entity toggle to a more generic role of enabling or disabling all the django CMS 3 frontend editing functionality or create a new toggle for this if a backwards compatible method isn't workable

Issue when using South

Error thrown when trying to do python manage.py migrate with Zinnia 0.13 and cmsplugin-zinnia 0.5

    UnknownMigration: Migration 'cmsplugin_zinnia:0001_initial' probably doesn't exist.
    Traceback (most recent call last):
      File "/home/mrkre/.virtualenvs/project/local/lib/python2.7/site-packages/south/migration/base.py", line 302, in migration
        migration = __import__(full_name, {}, {}, ['Migration'])
      File "/home/mrkre/.virtualenvs/project/local/lib/python2.7/site-packages/cmsplugin_zinnia/migrations/0001_initial.py", line 7, in <module>
        from zinnia.migrations import user_name
    ImportError: cannot import name user_name

CMSPlugins added to entries using Sekizai addtoblock fail to include CSS/JS

Hello,

I am using the packaged EntryPlaceholder, and everything appears to work in the admin, however when sekizai's render_block is done, the CSS and JS in the plugin template are not included in the final rendering.

Steps to reproduce:

  1. Have a project with cmsplugin_zinnia and cms.plugins.googlemap and their dependencies
  2. Create a new entry
  3. Add GoogleMap to the entry's placeholderfield
  4. Save and view entry. Body of plugin template, including the div google map plugin will be in the source, however the JS to initialize the map will not appear at the bottom of the page, and the google maps api javascript will not be at the top.

I have attempted to write a new EntryPlaceholder, using cms.plugin_rendering.render_placeholder, but I am not sure how it would work as the HTTPRequest + context are not available to the EntryAbstractClass. I think there is a problem as html_content is supposed to return finished html, and all it is returning from that placeholder field is the div elements, etc. I think this is because the template is processed with the addtoblock calls as a new template (i.e. not within the context of a base.html or something like that which has render_block calls in the right places).

I will continue to work on it and try to find a solution, and perhaps I am doing something wrong. Thanks for zinnia and your projects.

Zak

Missing migration for django CMS 3.3.x (and Django 1.8+)

Obviously, starting with django CMS 3.3.0 (and Django 1.8+) a change triggers some missing migrations in django-blog-zinnia and cmsplugin-zinnia.

migrate complains

Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

and makemigrations --dry-run shows that migrations for zinnia and cmsplugin_zinnia would be created (in site-packages, obviously).

Update: The migrations related to Zinnia directly (0005_entry_content_placeholder) are only related to EntryPlaceholder. See also #56.

This issue seems to affect django CMS plugins in general, and is dealt with in django-cms/django-cms#5550.

What needs to be done

The migrations that appear missing should be added to the set of existing migrations. This would be a backward incompatible change, though, breaking compatibility with django CMS < 3.3.0 (and Django < 1.8) as explained in the Divio ticket mentioned above.

Maybe it would make sense to make a name change now (cmsplugin-zinnia -> djangocms-zinnia) to make this break obvious?

Reverse for 'cms_usersettings_change' with arguments '()' and keyword arguments '{}' not found

I have been facing the below issue whenver I try to include cmsplugin_zinnia in INSTALLED_APP in DEBUG mode True, but with DEBUG mode False, things work ok. I can access ?edit url for django cms when this plugin is disable, but not so otherwise.

Exception Type: NoReverseMatch
Exception Value:
Reverse for 'cms_usersettings_change' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

Could I get some help please?

Requirements

Django==1.6.5
Pillow==2.5.1
South==1.0
argparse==1.2.1
beautifulsoup4==4.3.2
cmsplugin-filer==0.9.9
cmsplugin-zinnia==0.6
django-appconf==0.6
django-blog-zinnia==0.14.1
django-classy-tags==0.5.1
django-cms==3.0.3
django-debug-toolbar==1.2.1
django-filer==0.9.7
django-mptt==0.6.1
django-polymorphic==0.5.6
django-reversion==1.8.1
django-sekizai==0.7
django-tagging==0.3.2
django-xmlrpc==0.1.5
djangocms-admin-style==0.2.2
djangocms-column==1.3
djangocms-file==0.0.1
djangocms-flash==0.0.2
djangocms-googlemap==0.0.5
djangocms-inherit==0.0.1
djangocms-link==1.3.5
djangocms-picture==0.0.2
djangocms-style==1.3
djangocms-teaser==0.0.1
djangocms-text-ckeditor==2.1.6
djangocms-video==0.0.1
easy-thumbnails==2.0.1
html5lib==0.999
psycopg2==2.5.3
pyparsing==2.0.2
pytz==2014.4
six==1.7.3
sqlparse==0.1.11
uWSGI==2.0.6
wsgiref==0.1.2
zinnia-threaded-comments==0.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.