{ "info": { "author": "Alessandro Molina", "author_email": "alessandro.molina@axant.it", "bugtrack_url": null, "classifiers": [], "description": "About calendarevents\n--------------------\n\ncalendarevents is a Pluggable calendars and events application for TurboGears2.\nIt permits to create events which are associated to entities defined inside the\napplication which plugs it in.\n\nCalendarevents provides support for multiple calendars and event types, by defining\nnew event types it is possible to define how the event relates to external entities\nlike a blog post that describes it.\n\nWhen displaying events if available weather informations for the day and location\nof the event will be provided.\n\nInstalling\n----------\n\ncalendarevents can be installed both from pypi or from bitbucket::\n\n easy_install tgapp-calendarevents\n\nshould just work for most of the users\n\nPlugging calendarevents\n-----------------------\n\nIn your application *config/app_cfg.py* import **plug**::\n\n from tgext.pluggable import plug\n\nThen at the *end of the file* call plug with calendarevents::\n\n plug(base_config, 'calendarevents', event_types=[...])\n\nAt least one event type must be defined inside the *event_types* argument.\nDefining event types is explained inside the Event Types section.\n\nYou will be able to access the calendars at\n*http://localhost:8080/calendarevents*.\n\nEvent Types\n-----------\n\ncalendarevents needs the application to define at least one EventType to work.\n\nEvent types must be defined inheriting from the ``calendarevents.EventType`` class,\nfor example to define an event for a concert which relates to a blog article that\ndescribes the concert itself::\n\n from tw2.core.js import js_function\n from tw2.core.resources import JSLink, CSSLink\n\n class Concert(EventType):\n name = 'Concert'\n resources = [\n JSLink(modname='calendarevents.public', filename='js/calendarevents.js'),\n CSSLink(modname='calendarevents.public', filename='css/fullcalendar.css')\n ]\n events = {'eventClick': js_function('calendarevents.eventClick'),\n 'dayClick': js_function('calendarevents.dayClick')}\n\n def get_linkable_entities(self, calendar):\n return [(a.uid, a.title) for a in model.DBSession.query(model.Article)]\n\n def get_linked_entity_info(self, event):\n return model.DBSession.query(model.Article).get(event.linked_entity_id).title\n\n def get_linked_entity_url(self, event):\n return tg.url('/blog/view/%s' % event.linked_entity_id)\n\n plug(base_config, 'calendarevents', event_types=[Concert()])\n\nEvent types can also specify some additional options to change the calendevents \nbehavior. If the ``EventType`` specifies ``force_redirect = True`` as a class\nproperty whenever the event page is opened the user gets redirected to the\nlinked entity url.\n``EventType`` can also update the calendar informations be exposing a\n``calendar_data(self, event) -> dict`` method that can return any\nadditional information for the event (for example it can mark the\nevent as allDay or not).\n\n``resources`` are required only if you want to use js_hooks for fullcalendar events.\n``resources`` should be a list of toscaWidget injected resources,\n\n``events`` are the injected js methods for overriding js_hooks.\n\njs_hooks\n--------\n\nIf you want to use js_hooks you must inject resource in your event type, see prior section.\nfor now supported events for the js_hooks are ``eventClick`` and ``dayClick``.\n\nThe .js hook script can follow this example::\n\n (function(w) {\n w.calendarevents = {\n eventClick: function(base_url, event, view) {\n window.location.href = base_url+event.uid;\n },\n dayClick: function(base_url, date, allDay, view) {\n }\n };\n })(window);\n\nnote: if you inject js_hooks you replace the default behavior\nnote: **from version 0.2.0 date holds a moment for the clicked day**\n\nExposed Partials\n----------------\n\ncalendarevents exposes a partial to render event boxes inside other pages:\n\n* calendarevents.partials:event(event) - Renders an event box\n\nCalendar Partial\n----------------\n\n``calendarevents.partials:calendar(cal, view='month', all_day_slot=False, start_from=datetime.utcnow())``\n\nThe calendar partial expose a partial with just a calendar, parameters accepted are:\n\n* ``cal`` -> (required) the calendar object, for now the js events are managed only by the ``event_type`` assigned to\n that calendar\n* ``event_sources`` -> a dictionary in the following format::\n\n {'event_sources': [{'events': availability_events_list,\n 'color': 'Blue',\n 'text_color': ''},\n {'events': occupation_events_list,\n 'color': 'Red',\n 'text_color': ''}]}\n\n ``color`` and ``text_color`` are optional, ``events`` should be a list of ``event.calendar_data`` property, if you did\n not provide this, events are taken from ``cal`` object\n* ``start_from`` -> (datetime) starting calendar date\n* ``view`` -> (String) (default value \"month\") type of the calendar view (``month``, ``basicWeek``, ``basicDay``,\n ``agendaWeek``, ``agendaDay``, ``custom_days``)\n* ``all_day_slot`` -> (Bool) (default value: False) Event slot are displayed for all day or for the real time slot\n* ``slot_minutes`` -> (Int or String) (default value: '00:15:00' or 15) Minutes slot duration, if is integer slot_minutes < 60\n* ``first_hour`` -> (Int or String) (default value: '08:00:00' or 8) First hour displayed\n* ``time_format`` -> (String) (default value: \"HH:mm\"), the display format for time\n* ``column_format`` -> (String) (default value: \"D/M\"), the display format for column date\n* ``first_day`` -> (Int) (default value: 0), the fist day of week\n* ``day_to_show`` -> (Int) (default value: 8), day to show in view custom days\n* ``slot_label_interval`` -> (String) (default value: '01:00:00'), Interval of the slot label\n\nUtils\n-----\n\ninside ``calendarvents.lib.utils`` you can find a bunch of utils to view and manage events and calendar:\n\n* **create_calendar(name, events_type)** - create a new calendar, events_type should be a string\n* **get_calendar(calendar_id)** - retrieve the ``calendar`` for the given ``calendar_id``\n* **create_event(cal, name, summary, datetime, location, linked_entity_type, linked_entity_id, end_time)** - create a\n new ``calendar_event``\n* **get_event(event_id)** - retrieve the ``calendar_event`` for the given ``event_id``\n* **get_calendar_events_from_datetime(calendar, start_time, active)** retrieve all the active ``calendar_event`` for\n the given calendar starting from the given ``start_time``\n* **get_calendar_day_events(calendar, start_time, active)** retrieve all the active ``calendar_event`` for the given\n calendar and the given ``start_time``\n* **get_calendar_events_in_range(calendar, start_time, end_time, active)** - retrieve all the active ``calendar_event``\n for the given calendar and the given range of time (``start_time`` - ``end_time``)\n* **deactivate_event(event_id)** - deactivate a ``calendar_event``, by default standard get event utils retrieve only\n active events\n* **activate_event(event_id)** - put the ``calendar_event`` in active state\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "turbogears2.application", "license": "", "maintainer": "", "maintainer_email": "", "name": "tgapp-calendarevents", "package_url": "https://pypi.org/project/tgapp-calendarevents/", "platform": "", "project_url": "https://pypi.org/project/tgapp-calendarevents/", "project_urls": null, "release_url": "https://pypi.org/project/tgapp-calendarevents/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "TurboGears2 pluggable application for events and calendars", "version": "0.2.1" }, "last_serial": 5499742, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "95b07d9d5112da5dd35304dc6b44f33a", "sha256": "1d0ad82d28b671d85aa0c1f3349c8be5c1c5d19a680ca4a1ee7ab69b65eb79a4" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.1.tar.gz", "has_sig": false, "md5_digest": "95b07d9d5112da5dd35304dc6b44f33a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73413, "upload_time": "2012-08-10T13:09:14", "url": "https://files.pythonhosted.org/packages/71/c9/1c8dabb77d6a028636fd7a3b65080a37ff00717d74afac0d6c5b91bf7ca0/tgapp-calendarevents-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f0e676ba1179d2bcb860055bb87754da", "sha256": "bebe6375fdca7a513236ead2fa71299dff619582974403804632689a1e9589c3" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f0e676ba1179d2bcb860055bb87754da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74670, "upload_time": "2012-08-16T14:53:35", "url": "https://files.pythonhosted.org/packages/82/07/4578c1b1da83b8d3e6141e8d6f58432df5b2babe722770f2e9e9d5606074/tgapp-calendarevents-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "21498e3b720e8fee1e948aec5b8a5ed4", "sha256": "156134b146d9af13cdf2e0e0822b2b6640b4522f7a69890893ea1960dc4f9a47" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.3.tar.gz", "has_sig": false, "md5_digest": "21498e3b720e8fee1e948aec5b8a5ed4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74671, "upload_time": "2012-08-22T12:25:41", "url": "https://files.pythonhosted.org/packages/67/da/b6a83353a1902127286ac308fb2a5edee079ea79f3c0a2ed3c21cbaa4f52/tgapp-calendarevents-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f496a9efe843881063c654c23eb5e7c5", "sha256": "8a9efecd2f1267f37997380f7efc9a1cb5267e60affa7a8a6a7046ba9fa72abc" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f496a9efe843881063c654c23eb5e7c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75419, "upload_time": "2012-09-06T15:53:20", "url": "https://files.pythonhosted.org/packages/d1/db/ffdd6792ad2b8803a4919e851a472e987d2d8da595a5c8b522a1cac9b746/tgapp-calendarevents-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "aecd87e27edc68e9272a04a4201cb19b", "sha256": "f5f7a3b4feaac9db99306b3acf0767126a9cc09d9036271cfe7d675a5570745b" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.5.tar.gz", "has_sig": false, "md5_digest": "aecd87e27edc68e9272a04a4201cb19b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75431, "upload_time": "2012-09-06T22:36:41", "url": "https://files.pythonhosted.org/packages/68/34/e5f7c1c62195eda73bcb005af21af7ced5b6beed0b591f9e9d3c4da9af69/tgapp-calendarevents-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "7a666bb6aae5d9175778daee737f0e3c", "sha256": "1fb6e6b8531517a67e7e6bf212560f813d66c5a50b934b361e157e7858f7398a" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.6.tar.gz", "has_sig": false, "md5_digest": "7a666bb6aae5d9175778daee737f0e3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75452, "upload_time": "2012-09-07T16:51:22", "url": "https://files.pythonhosted.org/packages/83/41/ade4aa51801c02a21c69f171b7f13f9fbd814a573ec29145062018ac0cf1/tgapp-calendarevents-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "4b4daafc5bd1475f930b20a6954fd9d8", "sha256": "6f5eca1120fbe9664e6eded9b6c95e26fd97ac88e38308c6d58bb4c9a0cebcb4" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.7.tar.gz", "has_sig": false, "md5_digest": "4b4daafc5bd1475f930b20a6954fd9d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75692, "upload_time": "2012-09-10T09:39:17", "url": "https://files.pythonhosted.org/packages/f3/33/8a67eb434978411f128f4ef708dd0577d17d26bded591632db6a243ac4be/tgapp-calendarevents-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "eb539961bb957b1014a20f356e235c63", "sha256": "afb7a84d2128afd1ef821ae93c24bea2e890463cc651925a8596b680d80f7699" }, "downloads": -1, "filename": "tgapp-calendarevents-0.0.8.tar.gz", "has_sig": false, "md5_digest": "eb539961bb957b1014a20f356e235c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75743, "upload_time": "2012-10-21T13:55:20", "url": "https://files.pythonhosted.org/packages/f4/89/65c49c4a557c0a8e775f9285061e19ef823f65071d49e6a8774d04b23a3a/tgapp-calendarevents-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "bb5f1b1949ca1a3b7022f3e1c5aa7c9c", "sha256": "17595f8542026810c612a5f47d64d8f8478fd72a5691e292668a478a0c931a47" }, "downloads": -1, "filename": "tgapp-calendarevents-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bb5f1b1949ca1a3b7022f3e1c5aa7c9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76199, "upload_time": "2013-06-28T18:18:14", "url": "https://files.pythonhosted.org/packages/32/08/6719e4f372c7289c67667c171d1277afa5fcf8ca42e1f75dc6139fed5953/tgapp-calendarevents-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2246ff5cd07b33dc5bd86af6f0e083b6", "sha256": "9162c387e31eee5acf483b9edf731f7cc5eb6e06887c4ca935004ad591cdf4fb" }, "downloads": -1, "filename": "tgapp-calendarevents-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2246ff5cd07b33dc5bd86af6f0e083b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76784, "upload_time": "2013-10-23T09:31:35", "url": "https://files.pythonhosted.org/packages/9c/03/271f73febb5d08ba0fa8c45ece527058f3aee1cbb68972dc9561a9634f9e/tgapp-calendarevents-0.1.1.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4af66bcddaa472742d3a10613c9a93a6", "sha256": "bfa9877ffc0b7c55708e766d13682c9305c3034259c13a88657f4f8022315cbe" }, "downloads": -1, "filename": "tgapp-calendarevents-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4af66bcddaa472742d3a10613c9a93a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81066, "upload_time": "2015-04-13T11:16:27", "url": "https://files.pythonhosted.org/packages/e9/48/320561cc431e3e947d04d6baeb4124b4a3e2a910abd7dfb54cee41f14713/tgapp-calendarevents-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "040ff384b739f5587f8ebafd28ac14a5", "sha256": "3519e82275deb22b441854eac83478429d16b24767bbcc17ab8727e6a260e2a6" }, "downloads": -1, "filename": "tgapp-calendarevents-0.2.0.tar.gz", "has_sig": false, "md5_digest": "040ff384b739f5587f8ebafd28ac14a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109221, "upload_time": "2015-10-01T15:50:37", "url": "https://files.pythonhosted.org/packages/34/a5/ec55ea3f86d2b3eb75981b2d4eeebff92f39f6042db29f7071024bcf9401/tgapp-calendarevents-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8be6cc6633500916add3bd72d75f5880", "sha256": "448e9700f7b406b5801e4d1c78c8003f7190397c22205075a2a13fd3f19ab87d" }, "downloads": -1, "filename": "tgapp-calendarevents-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8be6cc6633500916add3bd72d75f5880", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110894, "upload_time": "2019-07-08T09:23:09", "url": "https://files.pythonhosted.org/packages/e1/20/7fec581a31691aa52126bc71d860acdb1e8c06622562202e9bb1b55b2972/tgapp-calendarevents-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8be6cc6633500916add3bd72d75f5880", "sha256": "448e9700f7b406b5801e4d1c78c8003f7190397c22205075a2a13fd3f19ab87d" }, "downloads": -1, "filename": "tgapp-calendarevents-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8be6cc6633500916add3bd72d75f5880", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110894, "upload_time": "2019-07-08T09:23:09", "url": "https://files.pythonhosted.org/packages/e1/20/7fec581a31691aa52126bc71d860acdb1e8c06622562202e9bb1b55b2972/tgapp-calendarevents-0.2.1.tar.gz" } ] }