Skip to main content

Handle CAS login for Pronote (index éducation)

Project description

django-pronote

Python 3.9 Django 3.x Python CI codecov Code style: black

Handle CAS login for Pronote (index éducation)

Installation

Install from PyPI:

pip install django-pronote

Or, install with pip:

pip install -e git://github.com/briefmnews/django-pronote.git@main#egg=pronote

Setup

In order to make django-pronote works, you'll need to follow the steps below.

Settings

First you need to add the following configuration to your settings:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.sessions',
    'django.contrib.messages',

    'pronote',
    ...
)

Mandatory settings

Here is the list of all the mandatory settings:

PRONOTE_API_KEY
PRONOTE_RESSOURCE_ID
PRONOTE_TERMS_AND_CONDITIONS_URL
PRONOTE_RESSOURCE_TITLE
PRONOTE_URL

Optional settings

The optional settings with their default values:

PRONOTE_RESSOURCE_OLD_ID (default: None)
PRONOTE_PUBLISHER (default: None)
PRONOTE_RESSOURCE_TYPE (default: None)
PRONOTE_FAMILY_ID = (default: None)
PRONOTE_FAMILY_LABEL = (default: None)
PRONOTE_FAMILY_JUSTIFICATION = (default: None)
PRONOTE_PERSONAL_INFORMATION_DEFINITION_DATA = (default: ())
PRONOTE_PERSONAL_INFORMATION_DEFINITION_JUSTIFICATION = (default: [])
PRONOTE_PUBLIC = (default: ())
PRONOTE_PUBLIC_QUOTAS = (default: [])
PRONOTE_DISCIPLINES = (default: ())
PRONOTE_MEFSTAT11 = (default: ())
PRONOTE_URL_MOBILE_APP = (default: None)
PRONOTE_API_SUPPORT = (default: ())
PRONOTE_DESCRIPTION = (default: None)
PRONOTE_KEYWORDS = (default: ())

Usage

Here is an example of output when running a GET method on /catalogue/1234?apiKey=test with the following settings:

PRONOTE_API_KEY = "test"
PRONOTE_RESSOURCE_ID = "briefme"
PRONOTE_TERMS_AND_CONDITIONS_URL = "https://www.brief.me/gar/cgu/"
PRONOTE_RESSOURCE_TITLE = "Brief.me"
PRONOTE_URL = "https://www.brief.me"
PRONOTE_PUBLISHER = "Brief.me"
PRONOTE_RESSOURCE_TYPE = "Manuel"
PRONOTE_FAMILY_ID = "1234"
PRONOTE_FAMILY_LABEL = "test label"
PRONOTE_FAMILY_JUSTIFICATION = "hello"
PRONOTE_PERSONAL_INFORMATION_DEFINITION_DATA = (["Nom", "Prenom"], ["Prenom"])
PRONOTE_PERSONAL_INFORMATION_DEFINITION_JUSTIFICATION = ["test 0", "test 1"]
PRONOTE_PUBLIC = ("Professeur", "Elèves")
PRONOTE_PUBLIC_QUOTAS = ["2", "3"]
PRONOTE_DISCIPLINES = ("041400", "040600")
PRONOTE_MEFSTAT11 = ("10010012110", "21110010012")
PRONOTE_URL_MOBILE_APP = "http://hello.com"
PRONOTE_API_SUPPORT = ("ajoutPanier", "renduPJTAF")
PRONOTE_DESCRIPTION = "Un test de description"
PRONOTE_KEYWORDS = ("key 1",)

Output

<?xml version="1.0" encoding="UTF-8"?>
<rn:catalogueEtab xmlns:rn="http://www.index-education.com/RessourcesNumeriques" xmlns:ex="http://www.index-education.com/RessourcesNumeriques/ExchangeTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.index-education.com/RessourcesNumeriques http://www.index-education.com/contenu/telechargement/partenaires/InterconnexionRessourcesNumeriquesV1_1.xsd" schemaVersion="1.1">
   <ex:catalogueVersion>1.0</ex:catalogueVersion>
   <ex:etabId>0133478Z</ex:etabId>
   <ex:ressource>
      <ex:id>9782701181431</ex:id>
      <ex:oldId>15264836</ex:oldId>
      <ex:familleId libelle="Famille resssources" justification="Justification corrélation multi-ressources">18ZE</ex:familleId>
      <ex:editeur>EDITEUR</ex:editeur>
      <ex:urlCgu>http://urlcgu</ex:urlCgu>
      <ex:titre>Histoire</ex:titre>
      <ex:genre>Manuel</ex:genre>
      <ex:definitionDcp ident="0" justification="Justification transfert DCP">
         <ex:dcp>Nom</ex:dcp>
         <ex:dcp>Prenom</ex:dcp>
      </ex:definitionDcp>
      <ex:definitionDcp ident="1" justification="Justification transfert DCP">
         <ex:dcp>Nom</ex:dcp>
         <ex:dcp>Prenom</ex:dcp>
         <ex:dcp>Classes</ex:dcp>
      </ex:definitionDcp>
      <ex:public identDefinitionDcp="0" quota="2">Professeur</ex:public>
      <ex:public identDefinitionDcp="1">Eleve</ex:public>
      <ex:matiereEnseignee>041400</ex:matiereEnseignee>
      <ex:matiereEnseignee>040600</ex:matiereEnseignee>
      <ex:mefstat11>10010012110</ex:mefstat11>
      <ex:mefstat11>21110010012</ex:mefstat11>
      <ex:url responsive="true">http://monurlderessource.php?idRessource=9782701181431</ex:url>
      <ex:urlAppliMobile>http://monurlderessourceAppliMobile.php?idRessource=9782701181431</ex:urlAppliMobile>
      <ex:apiSupport>ajoutPanier</ex:apiSupport>
      <ex:apiSupport>renduPJTAF</ex:apiSupport>
      <ex:description>description de la ressource</ex:description>
      <ex:keyword>keyword1</ex:keyword>
      <ex:keyword>keyword2</ex:keyword>
   </ex:ressource>
</rn:catalogueEtab>

Tests

Testing is managed by pytest. Required package for testing can be installed with:

pip install -r test_requirements.txt

To run testing locally:

pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-pronote-0.1.0.tar.gz (18.0 kB view hashes)

Uploaded Source

Built Distribution

django_pronote-0.1.0-py3-none-any.whl (19.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page