diff --git a/organon/settings.py b/organon/settings.py index b211596..f293ed1 100644 --- a/organon/settings.py +++ b/organon/settings.py @@ -26,6 +26,8 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', + 'django.contrib.flatpages', + 'guardian', 'adminsortable2', @@ -47,6 +49,8 @@ INSTALLED_APPS = [ 'compressor', 'playground', + + 'ckeditor', ] MIDDLEWARE = [ @@ -152,6 +156,30 @@ COMPRESS_CSS_FILTERS = [ ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = "/compte" +CKEDITOR_CONFIGS = { + 'default': { + 'extraPlugins': ','.join([ + 'codesnippet', + ]), + 'toolbar': 'Custom', + 'toolbar_Custom': [ + ['Format'], + # ['Pull-out', 'Sidebar', 'Footer'], + ['Bold', 'Italic', '-', 'Subscript', 'Superscript'], + ['CodeSnippet'], + ['BulletedList', 'NumberedList', '-', 'Outdent', 'Indent', '-', ''], + ['Link', 'Unlink', 'Image'], + ['RemoveFormat', '-', 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'], + ['Find', 'Replace', 'SpecialChar'], + ['Source', 'Maximize' + # ,'Footnotes' + #'Filer Image' + ], + ], + }, +} + + try: LOCAL_SETTINGS except NameError: diff --git a/organon/templates/flatpages/default.html b/organon/templates/flatpages/default.html new file mode 100644 index 0000000..f6c8044 --- /dev/null +++ b/organon/templates/flatpages/default.html @@ -0,0 +1,22 @@ +{% load static compress %} + + + +{{ flatpage.title }} + + + {% compress css %} + {% endcompress %} + + +{% load flatpages %} +{% get_flatpages as flatpages %} + + +{{ flatpage.content }} + + diff --git a/organon/urls.py b/organon/urls.py index e7c0e8d..ba8eea3 100644 --- a/organon/urls.py +++ b/organon/urls.py @@ -41,5 +41,7 @@ urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [ url(r'^rest-auth/registration/', include('rest_auth.registration.urls')), url(r'^rest-auth/', include('rest_auth.urls')), + url(r'pages/', include('django.contrib.flatpages.urls')), + url(r'^', include('playground.urls')), ] diff --git a/playground/admin.py b/playground/admin.py index 04ee21b..b3f4705 100644 --- a/playground/admin.py +++ b/playground/admin.py @@ -20,3 +20,18 @@ class ScoreAdmin(GuardedModelAdmin): admin.site.register(FeaturedScore, FeaturedScoreAdmin) admin.site.register(Attachment, AttachmentAdmin) admin.site.register(Score, ScoreAdmin) + + +from django.contrib.flatpages.admin import FlatPageAdmin +from django.contrib.flatpages.models import FlatPage +from django.db import models + +from ckeditor.widgets import CKEditorWidget + +class FlatPageCustom(FlatPageAdmin): + formfield_overrides = { + models.TextField: {'widget': CKEditorWidget} + } + +admin.site.unregister(FlatPage) +admin.site.register(FlatPage, FlatPageCustom) diff --git a/playground/static/playground/css/styles.css b/playground/static/playground/css/styles.css index 0d55d82..8a9d60b 100644 --- a/playground/static/playground/css/styles.css +++ b/playground/static/playground/css/styles.css @@ -991,14 +991,26 @@ li li li li li li li li li li li li li li form { color: var(--color-14); } background-color: darkgray; } -.help__content { +.help__frame { overflow: auto; width: 500px; - padding: 30px; height: 100%; } -#help.is-collapsed .help__content { display: none; } +#help.is-collapsed .help__frame { display: none; } + +.help__content { + padding: 30px; + color: #173a42; + background-color: white; +} + +.help__content h2 { margin-top: 28pt; text-align: center; margin-bottom: 14pt; } + +.help__content p + p { margin-top: 14pt; } + +.help__content li:before { content: "– "; } + diff --git a/playground/templates/playground/underscore/help.mtpl b/playground/templates/playground/underscore/help.mtpl index 81b24b9..cd4380f 100644 --- a/playground/templates/playground/underscore/help.mtpl +++ b/playground/templates/playground/underscore/help.mtpl @@ -1,376 +1,3 @@
aide
-
- NOTATION W - La notation W est un système de notation de l’action performée. La notation W permet aussi bien de transcrire - une performance qui a déjà eu lieu (dans le cas d’une passation de rôle, par exemple, ou de la constitution d’un - répertoire) que d’élaborer la partition générale d’un spectacle à venir. Dans tous les cas, elle se veut un - instrument de partage et de clarification des enjeux d’un travail collectif, matérialisés et objectivés par la - partition. - - La notation W repose sur une succession d’énoncés centrés sur un verbe à l’infinitif, à la manière des - instructions ou tasks de chorégraphes et d’artistes tels que Simone Forti, Yvonne Rainer ou Sol LeWitt. Ces - énoncés, qui utilisent le langage ordinaire pour désigner l’action en train de se faire (et non son but), W les - appelle des axes. Combinés entre eux selon des règles précises, les axes forment la base de la notation W. - La notation W permet d’envisager de manière immédiate l’ensemble des dimensions d’une action performée : - ­ - sur un plan chronologique, la succession raisonnée des actions performées - ­ - sur un plan analytique, l’explicitation de chaque axe, c’est­à­dire sa subdivision en sous­axes qui en - précisent le sens et le contenu, eux­mêmes divisés en sous­sous­axes etc., jusqu’au degré de précision - jugé nécessaire par le notateur. - ­ - sur un plan paradigmatique, les actions simultanées et/ou alternatives. - Une partition W est un système ouvert, qui peut tout à fait contenir des morceaux d’autres systèmes - notationnels (la partition d’une fugue de Bach, une chorégraphie de Merce Cunningham générée par LifeForms, - le texte de Richard III, un plan de scène). Il ne s’agit donc pas de se substituer à un système de notation - existant (la danse ou la musique, par exemple, disposent de systèmes notationnels complets et rigoureux) mais - de créer une structure multidimensionnelle permettant d’intégrer leurs partitions (et d’autres : texte, conduites - lumière, son enregistré...) dans un ensemble plus vaste et articulé. - - 1 - MODE D’EMPLOI - - PARTITION W - - Une partition W est la nominalisation d’une action passée ou à venir, opérée à l’aide du système de notation W. - Elle prend la forme d’un ensemble organisé d’axes, accompagnée d’une mise. - # nominalisation et effectuation - W dit qu’une partition nominalise une action et qu’une action effectue une partition. - # prescription et transcription - W appelle prescription la nominalisation d’une action à effectuer. - W appelle transcription la nominalisation d’une action déjà effectuée. Il y a deux types de transcriptions, selon - que le transcripteur a lui­même fait l'expérience de l’action (extraction) ou qu’il l'a observée de l’extérieur - (description). - MISE - W appelle mise les éléments de contexte requis au moment où commence l’effectuation de la partition. La mise - prend la forme d’une liste comprenant des objets, des acteurs, des configurations, des compétences, etc. - AXE - W appelle axe une fonction de lʼaction. Un axe ne désigne pas un but mais une activité en devenir. Un axe - prend la forme d’un verbe à l’infinitif : - RACONTER SA VIE - Précautions : - ­ utiliser des verbes d’action - ­ utiliser des formes impersonnelles (“prendre son pied”, et non “prendre mon pied”) - ­ éviter les énoncés négatifs (“ne pas toucher”) - ­ éviter les tournures passives (“être ceci”) - ­ éviter les verbes de perception (“écouter” plutôt que “entendre”, “regarder” plutôt que “voir”) - ­ éviter les verbes d’émotion et, plus généralement, les verbes dont le sujet grammatical n’est pas le sujet réel - (“souffrir”, “se réjouir”, “pleuvoir”) - ­ éviter les énoncés qui incluent la réception (“ébahir”, “faire rire”) - 2 - SOUS­AXE - W appelle sous­axes les axes qui explicitent un axe d'échelle supérieure. Tout axe peut être explicité en - plusieurs sous­axes, chacun des sous­axes peut à son tour être reformulé en sous­sous­axes qui l'explicitent, et - ainsi de suite. L’ensemble des axes et des sous­axes est appelé feuilleté. - JOUER LA JEUNE FILLE ET LA MORT - ENTRER - S’ASSEOIR - S’ACCORDER - JOUER - JOUER L’ALLEGRO #1 - JOUER L’ANDANTE CON MOTO #2 - JOUER LE SCHERZO #3 - JOUER LE PRESTO #4 - SORTIR - SE LEVER - SALUER - GAGNER LA COULISSE - Règles : - ­ l’ensemble des sous­axes d’un axe constitue sa définition : il y a stricte synonymie entre tous les niveaux du - feuilleté. - ­ un sous­axe ne peut pas avoir le même nom que l’axe qu’il explicite. - ­ il faut au moins deux sous­axes pour expliciter un axe - Dénominations : - ­ Axe principal : l’axe formulé au plus haut niveau du feuilleté. - L'axe principal est dit au niveau 0. Ses sous­axes sont dits au niveau ­1, etc. - ­ Axes intermédiaires : les sous­axes situés entre l’axe principal et les derniers sous­axes du feuilleté. - Les axes supérieurs (principal et intermédiaires) sont définis en intension par l’ensemble articulé de leurs - sous­axes. Leur définition est nominale. - ­ Axes inférieurs : les sous­axes au dernier niveau du feuilleté. - Les axes inférieurs sont définis en extension. Il est donc capital de les nommer avec le moins d’ambiguité - possible : leur définition est réelle, c’est­à­dire qu’elle correspond à l’usage commun. - Les axes inférieurs sont notés en italique - 3 - TAGS - Les sous­axes d’un même axe sont agencés entre eux par un certain nombre d’opérateurs (ou tags) qui en - articulent les rapports : rapports de succession (avec ou sans ordre) et/ou de simultanéité. - Note : tous les sous­axes d’un même axe sont articulés par le même tag - > - tag de succession ordonnée (“puis”) - FAIRE UN GÂTEAU D’AMOUR - > MÉLANGER LE SUCRE, LE BEURRE ET LA FARINE - > AJOUTER LES ŒUFS - > GLISSER UN ANNEAU DANS LA PÂTE - > VERSER DANS UNE JATTE PLATE - > FAIRE CUIRE 30MIN AU THERMOSTAT 7 - Dans cet exemple, l’interprète doit effectuer tous ces sous­axes l’un après l’autre dans l’ordre indiqué. - | - tag de succession sans ordre (“et”) - FAIRE LE MÉNAGE - | FAIRE LA VAISSELLE - | FAIRE LA LESSIVE - | ÉPOUSSETER LES MEUBLES - | PASSER L’ASPIRATEUR - Dans cet exemple, l’interprète doit effectuer tous ces sous­axes l’un après l’autre dans l’ordre de son choix. - // - tag de simultanéité (“en même temps que”) - FAIRE UN TUTORIEL DE CUISINE FÉÉRIQUE - // FAIRE UN GÂTEAU D’AMOUR - // CHANTER UNE CHANSON DE MICHEL LEGRAND - Dans cet exemple, l’interprète doit effectuer les deux sous­axes en même temps. - ≥ - tag d’accumulation (“puis en plus”) - INVOQUER LA PLUIE - ≥ MARCHER EN ROND - ≥ TAPER RYTHMIQUEMENT DANS SES MAINS - ≥ PSALMODIER UN MANTRA - Le rapport d’accumulation combine succession et simultanéité. Dans cet exemple, l’interprète commence par - marcher en rond, puis il ajoute l’action de taper dans ses mains, puis celle de psalmodier un mantra. - 4 - # Factorisation - La notation W ne recourant qu’à un seul tag de même niveau, elle ne permet pas d’utiliser des tags différents - sur la même ligne. - Ainsi, plutôt que d’écrire : - // MONTRER UNE VIDÉO - // (DÉCRIRE > EXPLIQUER) - on devra créer un axe intermédiaire : - // MONTRER UNE VIDÉO - // DISCOURIR - > DÉCRIRE - > EXPLIQUER - # Lecture transverse - Puisqu’il y a stricte synonymie entre tous les niveaux, un feuilleté doit pouvoir se lire en suivant uniquement les - axes inférieurs. Néanmoins, pour chaque axe inférieur, la lecture de tous ses sur­axes donnera des indications - importantes sur la manière de comprendre les instructions. - 5 - TERME - Le terme marque la fin de l’effectuation de l’axe. Il exprime soit une durée, soit l’intervention d’un événement - extérieur. - > AVANCER À PETITS PAS ­> on entend le violon - > FAIRE LE SOLO - Ici, on avance à petits pas jusqu’à ce qu’on entende le violon, après quoi on commence le solo. - Autres exemples : - BOIRE DE LA VODKA ­> 50 min - BOIRE DE LA VODKA ­> au moins 50 min, au plus 55 min - BOIRE DE LA VODKA ­> jusqu’à ce que la bouteille soit vide OU jusqu’à ce que l'interprète tombe raide par terre - BOUCLE - Une boucle marque qu’un axe doit se répéter plusieurs fois. - On peut préciser que l’axe se répète indéfiniment : - SALUER - On peut préciser le nombre d’occurrences de l’axe : - SALUER - 3 - ici on salue 3 fois - SALUER 1­3 ` - ici on salue entre 1 et 3 fois - SALUER 3+ - ici on salue au moins 3 fois - Ou faire dépendre le nombre d’occurrences d’une durée ou d’un événement extérieur : - SALUER ­>2 min - ici on salue en boucle pendant 2 minutes - SALUER ­>les applaudissements se tarissent - ici on salue en boucle jusqu’à ce que les applaudissements se tarissent - 6 - ALTERNATIVE - La possibilité peut être laissée à l’interprète de choisir un certain nombre d’axes dans une série donnée (ou - paradigme). Il est alors face à une alternative. - L’alternative est notée par le signe V placé à la gauche des sous­axes. - # alternative inclusive - Une alternative inclusive consiste à choisir plus d’un axe parmi ceux proposés. Son choix fait, l'interprète les - effectue selon les tags indiqués : - Si l’interprète doit choisir 2 des 3 axes proposés, on notera : - GAGNER DU TEMPS - V2 | RACONTER UNE HISTOIRE - | FAIRE DES CLAQUETTES - | CHANTER UNE CHANSON POPULAIRE - Ici, une fois choisis les deux axes qu’il souhaite effectuer, l’interprète devra les effectuer selon le tag |, - c’est­à­dire successivement dans l’ordre de son choix. - Si l’interprète est libre de choisir entre 3 et 5 des 6 axes proposés, on notera : - GAGNER DU TEMPS - V3­5 - > RACONTER UNE HISTOIRE - > FAIRE DES CLAQUETTES - > CHANTER UNE CHANSON POPULAIRE - > POSER DES QUESTIONS - > SE DÉSHABILLER - > INVITER UN SPECTATEUR SUR SCÈNE - Ici, les 3 à 5 axes choisis doivent être effectués selon le tag >, c’est­à­dire successivement) - Si l’interprète est libre de choisir entre 1 et 2 des 2 axes proposés, on notera : - MANIFESTER SA DOULEUR - V1­2 // PLEURER - // SE TORDRE LES MAINS - Ici, l’alternative inclusive revient à un “et/ou” : l’interprète peut soit pleurer, soit se tordre les mains, soit - pleurer en se tordant les mains. - Autre exemple : - MANIFESTER SA DOULEUR - V1­3 // PLEURER - // SE TORDRE LES MAINS - // SE LACÉRER LE VISAGE - Ici, l’interprète est libre de choisir 1, 2 ou 3 axes. S’il en choisit 2 ou 3, il doit les performer - simultanément - 7 - # alternative exclusive - Une alternative exclusive consiste à choisir un seul axe parmi ceux proposés. Dans ce cas, il n’y a pas de tag - devant les différentes alternatives, puisque l’axe choisi se confond à l’axe supérieur. - Note : V1 peut se noter simplement V. - GAGNER LA SORTIE - V MARCHER - COURIR - RAMPER - Autre exemple : - SORTIR LE SAMEDI SOIR - V BOIRE - CONDUIRE - # alternative conditionnelle - Une alternative est conditionnelle si le choix de l’axe dépend d’une condition : - INVITER UNE SPECTATRICE SUR SCÈNE - V a ENGAGER UNE CONVERSATION - b DIRE LA CHANSON DU MAL­AIMÉ - a : une spectatrice accepte - b : aucune spectatrice n’accepte - FAIRE LA FÊTE - V2 a // BOIRE - b // DANSER - c // DRAGUER - a : il y a de l’alcool - b : il y a de la musique - c : il y a de charmantes personnes - ­ Si les trois conditions sont réunies, l'interprète peut choisir soit de boire et danser, soit de boire et - draguer, soit de danser et draguer. - ­ Si seulement deux conditions sont réunies (par exemple musique et charmantes personnes), il n’a pas - d’autre choix que de danser et draguer. - ­ Si aucune ou une seule condition est réunie, l'interprète ne peut pas effectuer sa partition jusqu’à ce - que deux conditions soient réunies. - 8 - # conditions impératives - Une condition est impérative si le fait qu’elle soit remplie entraîne nécessairement l’effectuation de l’axe afférent. - Une condition impérative est notée a! - FAIRE LA FÊTE - V2 a! // BOIRE - b // DANSER - c // DRAGUER - Ici, dès lors qu’il y a de l’alcool, l'interprète doit obligatoirement boire (condition impérative). Il peut alors - soit boire et danser (s’il y a de la musique), soit boire et draguer (s’il y a de charmantes personnes). Il - ne peut choisir de danser et draguer que s’il n’y a pas d’alcool. - Notes : - ­ Dans le cas d’une alternative inclusive Vn avec q conditions impératives, n doit être ≥ q - ­ Si, dans une alternative stricte, au moins deux conditions sont impératives, c’est l’ordre des sous­axes - qui prévaut : - PASSER EN TERMINALE - V1 a ! PASSER EN S - b ! PASSER EN L - c PASSER EN STT - a : j’ai 15 en maths - b : j’ai 15 en français - c : j’ai 15 en anglais - Dès lors que j’ai 15 en maths, j’irai nécessairement en S ; si j’ai 15 en français mais pas 15 en maths, - j’irai nécessairement en L ; si j’ai 15 en anglais mais ni en maths ni en français, j’irai en STT. Et si - aucune condition n’est réunie, je redouble. - GOTO - L’axe spécial GOTO est une fonction qui permet de rediriger vers n’importe quel axe antérieur ou postérieur de - la partition. - > ACCORDER LE VIOLON - > JOUER - > JOUER L’ALLEGRO - > JOUER LE SCHERZO - > GOTO : S’ACCORDER - Ici, une fois que l’interprète a fini de jouer le scherzo, il accorde son violon de nouveau et recommence - la partition indéfiniment. - 9 - COMPLÉMENTS - D’autres informations peuvent être précisée au dos de l’axe : - # Axe contingent - Si un axe est noté contingent, l'interprète a le choix de l’effectuer ou non. On le note barré : - DIRE UNE BLAGUE - Notes : - ­ Un axe contingent est un cas particulier d’alternative entre “effectuer” et “ne pas effectuer” cet axe : - ­ Tous les axes qui ne sont ni contingents ni pris dans une alternatives sont dits nécessaires, c’est­à­dire - qu’ils doivent être effectués. - # Axe modulé - Si un axe est noté modulé, l'interprète est invité à inventer de nouvelles et multiples façons de l’effectuer, - c’est­à­dire à formuler de nouveaux sous­axes et à les performer. On le note souligné : - MARCHER - Ici, dans un code réaliste, l’interprétation ne sera pas considérée comme modulée si l'interprète marche - simplement (fonctionnellement) d’un point à un autre. Elle le sera en revanche s’il invente une manière - particulière de marcher mettant l’accent sur l’action elle­même. - Note : Un axe modulé a tendance à excéder les limites du code courant, c’est­à­dire qu’il est susceptible de - susciter des interprétations plus fictionnelles. - # Aspects - L’aspect indique la manière dont l’action s’inscrit dans la durée. La plupart du temps, cet aspect est donné par la - compréhension courante du verbe (“s’asseoir” est a priori semelfactif) ou par d’autres éléments de l’axe - (“éternuer rythmiquement” est a priori itératif). - Quand ce n’est pas le cas, on peut indiquer : - ➝ duratif - ~ itératif (l’action se répète) - ↓ semelfactif (l’action est ponctuelle) - Par exemple, l’axe “parler” connaîtra des effectuations très différentes selon l’aspect qui aura été choisi par le - notateur : - PARLERPARLERPARLER➝~!(je fais un monologue ininterrompu) - (je parle de temps en temps sur une certaine durée, par exemple en conversation) - (je dis quelque chose et je me tais) - 10 - # Indications - On peut inscrire au dos de l’axe toute locution adverbiale susceptible de préciser le sens de l’effectuation. Plus - la locution est littérale, plus elle est prescriptive. Plus la locution est métaphorique, plus elle est indicative. - ­ Indications d’allure - Ex : “lentement”, “rapidement”, “en accélérant” - ­ Indications de nuance - Ex : “avec force”, “en chuchotant”, “débit monotone” - ­ Indications de caractère - Ex : “ironiquement”, “chanté­parlé”, “comme un faon qui vient de naître” - # Pièces­jointes - Un axe peut renvoyer à des documents divers : textes, photos, vidéos, partitions de musique, etc. - DIRE LE TEXTE #1 - (où le texte #1 est le texte reproduit en annexe) - JOUER LE MORCEAU #2 - (où le morceau #2 est la partition reproduite en annexe) - LEXIQUE - Règles et scénarios : - W appelle partition­scénario une partition principalement composée d’axes réglés par des rapports de - succession. - W appelle partition­règle une partition principalement composée d’axes réglés par des rapports d’alternative. - Modulation, partition de droit et de fait - W appelle partition de droit une partition W en tant qu’elle est fixée (par son auteur). - W appelle modulation l’effectuation d’une partition (par l'interprète) en tant qu’elle en augmente les sous­axes. - W appelle partition de fait la partition de droit augmentée de la modulation. - 11 - (Exemple de partition) - 4’33” - Extraction de la pièce 4’33” de John Cage d’après les interprétations de David Tudor, John Cage, William Marx - et Armin Fuchs. - Mise : - ­ un piano dont le couvercle de clavier est ouvert - ­ un chronomètre - ­ une partition papier de 4’33” de John Cage (avec indications de durée) - Feuilleté : - JOUER 4’33’’ DE JOHN CAGE - > ENTRER - > ALLER AU PIANO - > SALUER LE PUBLIC - > S’ASSEOIR - > OUVRIR LA PARTITION - > JOUER UN MOUVEMENT 3 - > ATTAQUER LE MOUVEMENT - // DÉCLENCHER LE CHRONOMÈTRE - // FERMER LE COUVERCLE DU CLAVIER - > MARQUER LE SILENCE ­> l’indication de durée figurant sur la partition est atteinte - // SURVEILLER LE CHRONOMÈTRE ~. - // DONNER LE TEMPO - V1­3 ≥ MARQUER LA MESURE AVEC LA MAIN DROITE - ≥ HOCHER RYTHMIQUEMENT LA TÊTE - ≥ TOURNER LA PAGE DE LA PARTITION ­> idfp atteinte - > CONCLURE LE MOUVEMENT - // OUVRIR LE COUVERCLE DU CLAVIER - // ARRÊTER LE CHRONOMÈTRE - > SORTIR - >SE LEVER - >SALUER LE PUBLIC ­> tant que le public applaudit OU après 2 minutes - >GAGNER LA COULISSE - Notes : - Indications de durée figurant sur la partition (idfp) : - = 33” pour le premier mouvement - = 2’40” pour le second mouvement - = 1’20” pour le troisième mouvement - 12 -
+ diff --git a/requirements/base.txt b/requirements/base.txt index 83c7cf0..da13275 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -10,3 +10,4 @@ django-taggit-serializer django-admin-sortable2 django-guardian django-allauth +django-ckeditor