Giter Site home page Giter Site logo

kotti_calendar's Introduction

Kotti

pypi license

build_status_stable_postgresql build_status_stable_mysql build_status_stable_sqlite

Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS (see below).

Kotti is most useful when you are developing applications that

  • have complex security requirements,
  • use workflows, and/or
  • work with hierarchical data.

Built on top of a number of best-of-breed software components, most notably Pyramid and SQLAlchemy, Kotti introduces only a few concepts of its own, thus hopefully keeping the learning curve flat for the developer.

Kotti CMS

Kotti CMS is a content management system that's heavily inspired by Plone. Its main features are:

  • User-friendliness: editors can edit content where it appears; thus the edit interface is contextual and intuitive
  • WYSIWYG editor: includes a rich text editor
  • Responsive design: Kotti builds on Bootstrap, which looks good both on desktop and mobile
  • Templating: you can extend the CMS with your own look & feel with almost no programming required
  • Add-ons: install a variety of add-ons and customize them as well as many aspects of the built-in CMS by use of an INI configuration file
  • Security: the advanced user and permissions management is intuitive and scales to fit the requirements of large organizations
  • Internationalized: the user interface is fully translatable, Unicode is used everywhere to store data

License

Kotti is offered under the BSD-derived Repoze Public License.

Install

See installation instructions.

Support and Documentation

Read Kotti's extensive documentation on Read the Docs.

If you have questions or need help, you can post on our mailing list / forum or join us on IRC: #kotti on irc.freenode.net.

If you think you found a bug, open an issue on our Github bugtracker.

Development

build_status_master_postgresql build_status_master_mysql build_status_master_sqlite

coveralls codacy codeclimate scrutinizer requires.io

gh_forks gh_stars

Kotti is actively developed and maintained. We adhere to high quality coding standards, have an extensive test suite with high coverage and use continuous integration.

Contributions are always welcome, read our contribution guidelines and visit our Github repository.

kotti_calendar's People

Contributors

disko avatar dnouri avatar feth avatar j23d avatar tonthon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kotti_calendar's Issues

js.fullcalendar == 2.3.1 crashes kotti_calendar

Downgrading js.fullcalendar to 2.2.5 solves the problem

Traceback (most recent call last):
File "local/lib/python2.7/site-packages/waitress/channel.py", line 336, in service
task.service()
File "local/lib/python2.7/site-packages/waitress/task.py", line 169, in service
self.execute()
File "local/lib/python2.7/site-packages/waitress/task.py", line 388, in execute
app_iter = self.channel.server.application(env, start_response)
File "local/lib/python2.7/site-packages/fanstatic/publisher.py", line 219, in call
return self.app(environ, start_response)
File "local/lib/python2.7/site-packages/fanstatic/injector.py", line 76, in call
result = self.injector(response.body, needed, request, response)
File "local/lib/python2.7/site-packages/fanstatic/injector.py", line 180, in call
compat.as_bytestring('%s' % top.render()), 1)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4117: ordinal not in range(128)

So "js.fullcalendar" gives back unicode strings crashing fanstatic.

Creating a calendar

Creating a calendar (no feed) causes this error

ERROR:waitress:Exception when serving /example-calendar/
Traceback (most recent call last):
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/waitress/channel.py", line 337, in service
    task.service()
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/waitress/task.py", line 173, in service
    self.execute()
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/waitress/task.py", line 392, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/fanstatic/publisher.py", line 219, in __call__
    return self.app(environ, start_response)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/fanstatic/injector.py", line 64, in __call__
    response = request.get_response(self.app)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/webob/request.py", line 1320, in send
    application, catch_exc_info=False)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/webob/request.py", line 1284, in call_application
    app_iter = application(self.environ, start_response)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/router.py", line 242, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/router.py", line 217, in invoke_subrequest
    response = handle_request(request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 92, in tm_tween
    reraise(*exc_info)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid_tm/__init__.py", line 73, in tm_tween
    response = handler(request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/router.py", line 163, in handle_request
    response = view_callable(context, request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/config/views.py", line 385, in viewresult_to_response
    result = view(context, request)
  File "/Users/Dog/portfolio/Kotti/kotti/views/view.py", line 24, in view_content_default
    response = render_view_to_response(context, request, name=view_name)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/view.py", line 60, in render_view_to_response
    return view(context, request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/config/views.py", line 245, in _secured_view
    return view(context, request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/config/views.py", line 355, in rendered_view
    result = view(context, request)
  File "/Users/Dog/.pyenv/versions/kotti/lib/python2.7/site-packages/pyramid/config/views.py", line 491, in _class_view
    response = getattr(inst, attr)()
  File "/Users/Dog/portfolio/Kotti/kotti_calendar/kotti_calendar/views.py", line 248, in view
    self.need()
  File "/Users/Dog/portfolio/Kotti/kotti_calendar/kotti_calendar/views.py", line 135, in need
    fullcalendar_locales["en"].need()
KeyError: 'en'

Bad Kotti Browser pop-up trying to insert an image or link while creating an event

When editing an event for the first time (creating it), if I try to insert an image or a link and click on the browsing button, I get a pop-up with the title "Kotti Browser", but instead of the actual Kotti Browser that pop-up contains a form for creating yet another event (within the same parent calendar).

The Kotti Browser pop-up shows up nicely again when editing a previously created event.

The same happens in the case of kotti_newsitem news items, so I'm not sure if this is a problem with these content types or some bug in Kotti itself.

[tested in a Debian Wheezy machine, within a virtualenv with Kotti 0.9.2, kotti_calendar 0.7, kotti_media 0.5.1, kotti_navigation 0.4a2, kotti_newsitem 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.