diff --git a/.gitignore b/.gitignore index 2140f05..0ea6134 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ *.sqlite3 /media/avatars/ ponyconf/*_settings.py +/doc/_build diff --git a/.travis.yml b/.travis.yml index 1a3ba3c..b98cca8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: python python: - 3.5 + - 3.6 install: - pip install -r requirements.txt python-coveralls flake8 script: diff --git a/doc/2016-06-08 b/doc/2016-06-08 deleted file mode 100644 index bbcb44f..0000000 --- a/doc/2016-06-08 +++ /dev/null @@ -1,13 +0,0 @@ -responsable de track - -timeline : -19 20 novembre -bâtiment A, *B* et C -mi octobre : boost logistique -mi septembre : convergence programme / sélection d’orateur -fin juin / début juillet : appel à participation -juin : sponsoring - -attention au chevauchement d’horraire -defraiement -planing : attention si tous les horateurs arrivent et partent en même temps, afficher quand le mec est dispo diff --git a/doc/2016-06-15.md b/doc/2016-06-15.md deleted file mode 100644 index d7f7779..0000000 --- a/doc/2016-06-15.md +++ /dev/null @@ -1,26 +0,0 @@ -- [ ] virer l’username -- [x] premier login -> redirection profile -- [x] temps prévu (20 min / 40 min) -- [x] proposer des talks pour les autres -- [x] gestion staff -- [x] autre couleur change password -- [x] 3ième formulaire profile pour les infos de participation -- [x] changer le widget des topics pour des cases à cocher -- [ ] notification si modif constraints -- [ ] pre-remplissage constraints -- [x] do i need sound? -- [x] co-speakers -- [ ] règle du jeu de l’édition -- [x] vote (pas de notif) -- [ ] notif modification conf … -- [x] modif de conf : pas de modifs des topics -- [x] rajouter les created sur un peu tous les modèles -- [x] UI reviewers (pour le staff pour nommer des reviewers) -- [x] topic : permettre au staff d’en rajouter -- [x] topic : qui est reviewer -- [x] visibilité des talks -- [x] visibilité des speakers -- [x] note sur un speaker -- [ ] ouverture conf -- [ ] mail de bienvenu autre que activation si le mec est inscrit par le staff -- [ ] do not notify speakers of modified talk diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..ebdae09 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = PonyConf +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..9456518 --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# PonyConf documentation build configuration file, created by +# sphinx-quickstart on Wed Nov 29 13:13:20 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.todo'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'PonyConf' +copyright = '2017, PonyConf team' +author = 'PonyConf team' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '2' +# The full version, including alpha/beta/rc tags. +release = '2.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'PonyConfdoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'PonyConf.tex', 'PonyConf Documentation', + 'PonyConf team', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'ponyconf', 'PonyConf Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'PonyConf', 'PonyConf Documentation', + author, 'PonyConf', 'One line description of project.', + 'Miscellaneous'), +] + + + diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..e461a0a --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,23 @@ +.. PonyConf documentation master file, created by + sphinx-quickstart on Wed Nov 29 13:13:20 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to PonyConf's documentation! +==================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + Installation guide + Upgrade guide + User guide + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/doc/installation-guide.rst b/doc/installation-guide.rst new file mode 100644 index 0000000..c9251e9 --- /dev/null +++ b/doc/installation-guide.rst @@ -0,0 +1,58 @@ +Installation guide +================== + +Typography +---------- + +Commands starting with ``#`` must be run as ``root`` user. + +Commands starting with ``$`` must be run as ``ponyconf`` user. + + +Requirements +------------ + +PonyConf have been tested with python 3.5 and 3.6. + + +Preparation +----------- + +Create a user ``ponyconf``:: + + # useradd -r -m -d /srv/www/ponyconf ponyconf + +The directory ``/srv/www`` must exist before. +An other base directory is fine. + +The following commands are run as ``ponyconf`` user:: + + # su - ponyconf + +Create ``log`` and ``webdir`` directories:: + + $ mkdir log webdir + +Clone the repository in the ``app`` directory:: + + $ git clone https://github.com/PonyConf/PonyConf.git app + +Configuration +------------- + +Copy the example configuration file:: + + $ cp app/ponyconf/local_settings.py.example app/ponyconf/local_settings.py + +Set the ``SECRET_KEY`` value. +You can generate a secret key with ``openssl``:: + + $ openssl rand -base64 32 + +Verify emails related settings values. +Set your timezone and language code. + +If you want to use another database than the default one (SQLite), set ``DATABASES``. +You can find the syntax in the `django documentation`_. + +.. _django documentation: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-DATABASES diff --git a/doc/requirements.md b/doc/requirements.md deleted file mode 100644 index 12542bc..0000000 --- a/doc/requirements.md +++ /dev/null @@ -1,33 +0,0 @@ -- [x] enregistrement sur le site (pas d'enregistrement fb/linkedin: on aime le libre ici) -- [x] permettre de proposer une participation (conférence/atelier/small talk/etc.). -- [x] Un speaker rentre un abstract et peut associer un ou des co-speakers. -- [x] l'équipe organisatrice peut voter pour les conférences (avec un commentaire visible uniquement de l'équipe) et - les accepter/refuser -- [x] pour chaque conférence/conférencier, on permet d'échanger avec le conférencier (lui vois ça comme un mail, mais - côté orga c'est centralisé sur l'UI web... c'est mieux pour le suivi). -- [x] Notification (par mail) pour les administrateurs des ajout/modification de conférence et des échanges avec les - intervenants. -- [ ] Gestion du planning des salles (on affecte une track à une salle, mais cela permet surtout de signaler les - doublons d'intervenants/salle/etc.) -- [ ] Gestion du planning des bénévoles (ils s'inscrivent) -- [ ] Générer un planning XML pour être ingérée par l'appli Android -- [ ] Gestion de différents profils: speaker, bénévole, responsable de track, kernel -- [ ] Génération des badges -- [x] Un speaker et un bénévole peuvent être enregistré par un tiers (responsable de track ou kernel). -- [ ] Gestion des sponsors : niveaux de sponsorings et personnes présentes pour la génération des badges -- [x] Gestion des différentes thématiques (CRUD) -- [ ] Vues à réaliser: listing des propositions, conférence, bénévoles, speakers (permet d'avoir une vue d'ensemble) -- [x] Champ de note interne sur un speaker (pour noter des préférences par exemple) et sur une proposition de - conférence -- [ ] Gestion de la date d'ouverture/fermeture de l'appel à conférence (différente selon le type de participation - - i.e. conférence/atelier/stand). -- [x] On propose par défaut des propositions du type: talk, workshop, booth -- [x] Profil des intervenenants: nom, prénom, mail, date et heure d'arrivée, date et heure de départ, moyen de - transport, type de connectique, hébergement, -- [ ] Possibilité aux intervenants de récupérer leur billet d’avion électronique -- [ ] Aide au planning : - - [x] affichage des contraintes des intervenants - - [ ] qui est disponible pour un time slot donnée -- [ ] Stand ? - -Le code de l'année dernière est là : https://github.com/toulibre/cdl-site diff --git a/doc/upgrade-guide.rst b/doc/upgrade-guide.rst new file mode 100644 index 0000000..f72f5d3 --- /dev/null +++ b/doc/upgrade-guide.rst @@ -0,0 +1,2 @@ +Upgrade guide +============= diff --git a/doc/user-guide.rst b/doc/user-guide.rst new file mode 100644 index 0000000..415d843 --- /dev/null +++ b/doc/user-guide.rst @@ -0,0 +1,2 @@ +User guide +==========