A web-based calendar for Fedora
  • Python 79.1%
  • HTML 11.6%
  • JavaScript 7%
  • CSS 2.2%
Find a file
James Antill 98fdecefee Update from 2025 to 2037, fixes #232.
Signed-off-by: James Antill <james@and.org>
2026-05-29 17:51:39 -04:00
.s2i Add support for s2i to fedocal 2022-01-03 13:51:11 +01:00
alembic Get rid of __requires__ lines 2019-01-21 13:14:17 +01:00
doc Update from 2025 to 2037, fixes #232. 2026-05-29 17:51:39 -04:00
fedocal Update from 2025 to 2037, fixes #232. 2026-05-29 17:51:39 -04:00
tests Update from 2025 to 2037, fixes #232. 2026-05-29 17:51:39 -04:00
.cico.pipeline Add cico.pipeline 2019-01-21 13:30:24 +01:00
.gitignore Use tox 2019-01-21 12:07:15 +01:00
alembic.ini.sample Move the alembic revision file to /usr/share/fedocal/alembic/ 2013-06-17 20:15:22 +02:00
alembic_upgrade.sh Add support for s2i to fedocal 2022-01-03 13:51:11 +01:00
babel.cfg Add babel configuration file 2014-10-13 17:51:25 +02:00
createdb Add help script to create the database and run the server from the sources 2012-11-17 19:48:09 +01:00
createdb.py Get rid of __requires__ lines 2019-01-21 13:14:17 +01:00
fedocal.cfg.sample Merge pull request #162 from rtnpro/ical_enhancement 2015-03-28 11:26:56 +01:00
fedocal.conf The apache alias for static/ shouldn't be needed as this is served by flask itself 2013-09-04 14:38:03 +02:00
fedocal.spec Relax some requirements 2025-07-07 10:46:14 +02:00
fedocal.wsgi Get rid of __requires__ lines 2019-01-21 13:14:17 +01:00
fedocal_cron.py Fix the prints so the string are correctly placed 2021-04-06 19:04:46 +02:00
fedora-messaging.toml.example Port fedocal to fedora-messaging and drop fedmsg support 2020-08-05 10:00:25 +00:00
LICENSE Add the GPLv3 LICENSE text 2012-11-09 10:58:44 +01:00
MANIFEST.in Include the local nosetests script in the sources of the releases 2014-06-18 09:39:30 +02:00
messages.pot Replace "Recursive event" with "Recurring event" 2016-12-20 11:44:55 +01:00
README.rst Fix default conf to run with Flask-OIDC 2.x 2024-09-02 08:33:51 +00:00
requirements.txt Get rid of Flask-MultiStatic, it does not work with recent version of Flask anymore 2025-07-07 11:56:42 +02:00
runserver.py Add cert and key options to runserver.py 2021-06-21 15:21:44 +00:00
setup.py Use tox 2019-01-21 12:07:15 +01:00
TODO Update the TODO file, we have a setup.py 2018-07-20 12:23:35 +02:00
tox.ini Update python versions in tox config 2024-09-02 08:33:51 +00:00
update.sql Add an update.sql file 2012-11-05 16:53:58 +01:00
wsgi.py Add support for s2i to fedocal 2022-01-03 13:51:11 +01:00

fedocal
=======

:Author: Pierre-Yves Chibon <pingou@pingoured.fr>


fedocal is a web based calendar application.


Get this project:
-----------------
Source:  https://pagure.io/fedocal.git/
Mirror on github: https://github.com/fedora-infra/fedocal
(Please use Pagure as the main repository and make sure
you run your patch against it)

Documentation: http://fedocal.rtfd.org


Dependencies:
-------------
.. _Flask: http://flask.pocoo.org/
.. _SQLAlchemy: http://www.sqlalchemy.org/
.. _alembic: https://bitbucket.org/zzzeek/alembic
.. _iCal: http://en.wikipedia.org/wiki/ICalendar
.. _python-vobject: http://vobject.skyhouseconsulting.com/
.. _pytz: http://pytz.sourceforge.net/
.. _dateutil: http://labix.org/python-dateutil

This project is a `Flask`_ application. The calendars and meetings are
stored into a relational database using `SQLAlchemy`_ as Object Relational
Mapper (ORM) and `alembic`_ to handle database scheme changes.
fedocal provides an `iCal`_ feed for each calendar and relies on
`python-vobject`_ for this. Finally, `pytz`_ is used to handle the timezone
changes and `dateutil`_ to allow date manipulation over months/years.

The full list of dependencies can be found ine the ``requirements.txt`` file.


Running a development instance:
-------------------------------

Clone the source::

 git clone https://github.com/fedora-infra/fedocal.git


Copy the configuration files::

 cp fedocal.cfg.sample fedocal.cfg
 cp alembic.ini.sample alembic.ini

Adjust the configuration file (secret key, database URL, admin group...)


Create the database scheme::

 FEDOCAL_CONFIG=fedocal.cfg sh createdb


Register the application to iddev for development::

  oidc-register https://iddev.fedorainfracloud.org/ http://localhost:5000/oidc_callback


Add the following line in your configuration file `fedocal.cfg`::

  OIDC_ID_TOKEN_COOKIE_SECURE = False


Run the server::

 python runserver.py --config fedocal.cfg

You should be able to access the server at http://localhost:5000 (do not use
``127.0.0.1`` as it will no work)


/!\ If login in does not work and gives you an ``invalid return_uri`` check
  the ``redirect_uris`` in the ``client_secrets.json`` file and make sure it
  matches **exactly** (check http vs https, trailing slash vs no trailing slash...).
  You may have to re-register as editing directly the ``client_secrets.json``
  file will not work.


Git Branches:
-------------

This project has three principal git branches:

* ``master``: this is the default branch in which development is done. It is the
  branch from which releases are made. It is the branch feature branches are
  branched from and get merged into.
* ``staging``: fedocal is deployed in the Fedora infrastructure in openshift
  using s2i, the staging environment is built from this branch. This branch has
  one extra commit that is not in ``master`` which adds all the files and changes
  necessary to deploy fedocal in openshift using s2i. This branch is therefore
  rebased and force-pushed when the staging fedocal instance is updated.
  Pull-Request should not target this branch.
* ``production``: this branch is used for the same situation as the ``staging``
  branch but for the production fedocal instance. It also contains an additional
  commit that is not in the ``master`` branch and is therefore force-pushed
  after a rebase when the production fedocal instance is updated.
  Pull-Request should not target this branch.


Testing:
--------

This project contains unit-tests allowing you to check if your server
has all the dependencies correctly set.

To run them simply call::

 tox

.. note:: To stop the test at the first error or failure you can try:

   ::

    tox -- -x

.. note:: To run a single file you can try:

   ::

    tox -- tests/test_flask.py -x


Reporting issues:
-----------------

For any issue you may encounter please file a ticket and submit it to:

Fedocal Pagure: https://pagure.io/fedocal/issues

Contributors can use the same tracker to find existing bugs to work on.
You need to login with your FAS account to submit or modify a ticket.



License:
--------

This project is licensed GPLv3+.