mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			477 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			477 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
API Membres
 | 
						|
===========
 | 
						|
 | 
						|
Profil utilisateur
 | 
						|
------------------
 | 
						|
 | 
						|
**Chemin :** `/api/members/profile/ <https://note.crans.org/api/members/profile/>`_
 | 
						|
 | 
						|
Options
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
.. code:: json
 | 
						|
 | 
						|
  {
 | 
						|
      "name": "Profile List",
 | 
						|
      "description": "REST API View set.\nThe djangorestframework plugin will get all `Profile` objects, serialize it to JSON with the given serializer,\nthen render it on /api/members/profile/",
 | 
						|
      "renders": [
 | 
						|
          "application/json",
 | 
						|
          "text/html"
 | 
						|
      ],
 | 
						|
      "parses": [
 | 
						|
          "application/json",
 | 
						|
          "application/x-www-form-urlencoded",
 | 
						|
          "multipart/form-data"
 | 
						|
      ],
 | 
						|
      "actions": {
 | 
						|
          "POST": {
 | 
						|
              "id": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": true,
 | 
						|
                  "label": "ID"
 | 
						|
              },
 | 
						|
              "phone_number": {
 | 
						|
                  "type": "string",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Num\u00e9ro de t\u00e9l\u00e9phone",
 | 
						|
                  "max_length": 50
 | 
						|
              },
 | 
						|
              "section": {
 | 
						|
                  "type": "string",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Section",
 | 
						|
                  "help_text": "e.g. \"1A0\", \"9A\u2665\", \"SAPHIRE\"",
 | 
						|
                  "max_length": 255
 | 
						|
              },
 | 
						|
              "department": {
 | 
						|
                  "type": "choice",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "D\u00e9partement",
 | 
						|
                  "choices": [
 | 
						|
                      {
 | 
						|
                          "value": "A0",
 | 
						|
                          "display_name": "Informatique (A0)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "A1",
 | 
						|
                          "display_name": "Math\u00e9matiques (A1)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "A2",
 | 
						|
                          "display_name": "Chimie (A''2)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "A'2",
 | 
						|
                          "display_name": "Physique appliqu\u00e9e (A'2)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "A3",
 | 
						|
                          "display_name": "Biologie (A3)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "B1234",
 | 
						|
                          "display_name": "SAPHIRE (B1234)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "B1",
 | 
						|
                          "display_name": "M\u00e9canique (B1)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "B2",
 | 
						|
                          "display_name": "G\u00e9nie civil (B2)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "B3",
 | 
						|
                          "display_name": "G\u00e9nie m\u00e9canique (B3)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "B4",
 | 
						|
                          "display_name": "EEA (B4)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "C",
 | 
						|
                          "display_name": "Design (C)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "D2",
 | 
						|
                          "display_name": "\u00c9conomie-gestion (D2)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "D3",
 | 
						|
                          "display_name": "Sciences sociales (D3)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "E",
 | 
						|
                          "display_name": "Anglais (E)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "EXT",
 | 
						|
                          "display_name": "Externe (EXT)"
 | 
						|
                      }
 | 
						|
                  ]
 | 
						|
              },
 | 
						|
              "promotion": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Promotion",
 | 
						|
                  "help_text": "Ann\u00e9e d'entr\u00e9e dans l'\u00e9cole (None si non-\u00e9tudiant\u00b7e de l'ENS)",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 32767
 | 
						|
              },
 | 
						|
              "address": {
 | 
						|
                  "type": "string",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Adresse",
 | 
						|
                  "max_length": 255
 | 
						|
              },
 | 
						|
              "paid": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Pay\u00e9",
 | 
						|
                  "help_text": "Indique si l'utilisateur⋅rice per\u00e7oit un salaire."
 | 
						|
              },
 | 
						|
              "ml_events_registration": {
 | 
						|
                  "type": "choice",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "S'inscrire sur la liste de diffusion pour rester inform\u00e9 des \u00e9v\u00e9nements sur le campus (1 mail par semaine)",
 | 
						|
                  "choices": [
 | 
						|
                      {
 | 
						|
                          "value": "",
 | 
						|
                          "display_name": "Non"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "fr",
 | 
						|
                          "display_name": "Oui (les recevoir en fran\u00e7ais)"
 | 
						|
                      },
 | 
						|
                      {
 | 
						|
                          "value": "en",
 | 
						|
                          "display_name": "Oui (les recevoir en anglais)"
 | 
						|
                      }
 | 
						|
                  ]
 | 
						|
              },
 | 
						|
              "ml_sport_registration": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "S'inscrire sur la liste de diffusion pour rester inform\u00e9 des actualit\u00e9s sportives sur le campus (1 mail par semaine)"
 | 
						|
              },
 | 
						|
              "ml_art_registration": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "S'inscrire sur la liste de diffusion pour rester inform\u00e9 des actualit\u00e9s artistiques sur le campus (1 mail par semaine)"
 | 
						|
              },
 | 
						|
              "report_frequency": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Fr\u00e9quence des rapports (en jours)",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 32767
 | 
						|
              },
 | 
						|
              "last_report": {
 | 
						|
                  "type": "datetime",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Date de dernier rapport"
 | 
						|
              },
 | 
						|
              "email_confirmed": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Adresse email confirm\u00e9e"
 | 
						|
              },
 | 
						|
              "registration_valid": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Inscription valide"
 | 
						|
              },
 | 
						|
              "user": {
 | 
						|
                  "type": "field",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": true,
 | 
						|
                  "label": "User"
 | 
						|
              }
 | 
						|
          }
 | 
						|
      }
 | 
						|
  }
 | 
						|
 | 
						|
Filtres Django
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``user``
 | 
						|
* ``user__first_name``
 | 
						|
* ``user__last_name``
 | 
						|
* ``user__username``
 | 
						|
* ``user__email``
 | 
						|
* ``user__note__alias__name``
 | 
						|
* ``user__note__alias__normalized_name``
 | 
						|
* ``phone_number``
 | 
						|
* ``section``
 | 
						|
* ``department``
 | 
						|
* ``promotion``
 | 
						|
* ``address``
 | 
						|
* ``paid``
 | 
						|
* ``ml_events_registration``
 | 
						|
* ``ml_sport_registration``
 | 
						|
* ``ml_art_registration``
 | 
						|
* ``report_frequency``
 | 
						|
* ``email_confirmed``
 | 
						|
* ``registration_valid``
 | 
						|
 | 
						|
Filtres de recherche
 | 
						|
~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``user__first_name`` (expression régulière)
 | 
						|
* ``user__last_name`` (expression régulière)
 | 
						|
* ``user__username`` (expression régulière)
 | 
						|
* ``user__email`` (expression régulière)
 | 
						|
* ``user__note__alias__name`` (expression régulière)
 | 
						|
* ``user__note__alias__normalized_name`` (expression régulière)
 | 
						|
 | 
						|
Club
 | 
						|
----
 | 
						|
 | 
						|
**Chemin :** `/api/members/club/ <https://note.crans.org/api/members/club/>`_
 | 
						|
 | 
						|
Options
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
.. code:: json
 | 
						|
 | 
						|
  {
 | 
						|
      "name": "Club List",
 | 
						|
      "description": "REST API View set.\nThe djangorestframework plugin will get all `Club` objects, serialize it to JSON with the given serializer,\nthen render it on /api/members/club/",
 | 
						|
      "renders": [
 | 
						|
          "application/json",
 | 
						|
          "text/html"
 | 
						|
      ],
 | 
						|
      "parses": [
 | 
						|
          "application/json",
 | 
						|
          "application/x-www-form-urlencoded",
 | 
						|
          "multipart/form-data"
 | 
						|
      ],
 | 
						|
      "actions": {
 | 
						|
          "POST": {
 | 
						|
              "id": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": true,
 | 
						|
                  "label": "ID"
 | 
						|
              },
 | 
						|
              "name": {
 | 
						|
                  "type": "string",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Nom",
 | 
						|
                  "max_length": 255
 | 
						|
              },
 | 
						|
              "email": {
 | 
						|
                  "type": "email",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Courriel",
 | 
						|
                  "max_length": 254
 | 
						|
              },
 | 
						|
              "require_memberships": {
 | 
						|
                  "type": "boolean",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "N\u00e9cessite des adh\u00e9sions",
 | 
						|
                  "help_text": "D\u00e9cochez si ce club n'utilise pas d'adh\u00e9sions."
 | 
						|
              },
 | 
						|
              "membership_fee_paid": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Cotisation pour adh\u00e9rer (normalien \u00e9l\u00e8ve)",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 2147483647
 | 
						|
              },
 | 
						|
              "membership_fee_unpaid": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Cotisation pour adh\u00e9rer (normalien \u00e9tudiant)",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 2147483647
 | 
						|
              },
 | 
						|
              "membership_duration": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Dur\u00e9e de l'adh\u00e9sion",
 | 
						|
                  "help_text": "La dur\u00e9e maximale (en jours) d'une adh\u00e9sion (NULL = infinie).",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 2147483647
 | 
						|
              },
 | 
						|
              "membership_start": {
 | 
						|
                  "type": "date",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "D\u00e9but de l'adh\u00e9sion",
 | 
						|
                  "help_text": "Date \u00e0 partir de laquelle les adh\u00e9rents peuvent renouveler leur adh\u00e9sion."
 | 
						|
              },
 | 
						|
              "membership_end": {
 | 
						|
                  "type": "date",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Fin de l'adh\u00e9sion",
 | 
						|
                  "help_text": "Date maximale d'une fin d'adh\u00e9sion, apr\u00e8s laquelle les adh\u00e9rents doivent la renouveler."
 | 
						|
              },
 | 
						|
              "parent_club": {
 | 
						|
                  "type": "field",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Club parent"
 | 
						|
              }
 | 
						|
          }
 | 
						|
      }
 | 
						|
  }
 | 
						|
 | 
						|
Filtres Django
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``name``
 | 
						|
* ``email``
 | 
						|
* ``note__alias__name``
 | 
						|
* ``note__alias__normalized_name``
 | 
						|
* ``parent_club``
 | 
						|
* ``parent_club__name``
 | 
						|
* ``require_memberships``
 | 
						|
* ``membership_fee_paid``
 | 
						|
* ``membership_fee_unpaid``
 | 
						|
* ``membership_duration``
 | 
						|
* ``membership_start``
 | 
						|
* ``membership_end``
 | 
						|
 | 
						|
Filtres de recherche
 | 
						|
~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``name`` (expression régulière)
 | 
						|
* ``email`` (expression régulière)
 | 
						|
* ``note__alias__name`` (expression régulière)
 | 
						|
* ``note__alias__normalized_name`` (expression régulière)
 | 
						|
 | 
						|
Adhésion
 | 
						|
--------
 | 
						|
 | 
						|
**Chemin :** `/api/members/membership/ <https://note.crans.org/api/members/membership/>`_
 | 
						|
 | 
						|
Options
 | 
						|
~~~~~~~
 | 
						|
 | 
						|
.. code:: json
 | 
						|
 | 
						|
  {
 | 
						|
      "name": "Membership List",
 | 
						|
      "description": "REST API View set.\nThe djangorestframework plugin will get all `Membership` objects, serialize it to JSON with the given serializer,\nthen render it on /api/members/membership/",
 | 
						|
      "renders": [
 | 
						|
          "application/json",
 | 
						|
          "text/html"
 | 
						|
      ],
 | 
						|
      "parses": [
 | 
						|
          "application/json",
 | 
						|
          "application/x-www-form-urlencoded",
 | 
						|
          "multipart/form-data"
 | 
						|
      ],
 | 
						|
      "actions": {
 | 
						|
          "POST": {
 | 
						|
              "id": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": true,
 | 
						|
                  "label": "ID"
 | 
						|
              },
 | 
						|
              "date_start": {
 | 
						|
                  "type": "date",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "L'adh\u00e9sion commence le"
 | 
						|
              },
 | 
						|
              "date_end": {
 | 
						|
                  "type": "date",
 | 
						|
                  "required": false,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "L'adh\u00e9sion finit le"
 | 
						|
              },
 | 
						|
              "fee": {
 | 
						|
                  "type": "integer",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Cotisation",
 | 
						|
                  "min_value": 0,
 | 
						|
                  "max_value": 2147483647
 | 
						|
              },
 | 
						|
              "user": {
 | 
						|
                  "type": "field",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Utilisateur"
 | 
						|
              },
 | 
						|
              "club": {
 | 
						|
                  "type": "field",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "Club"
 | 
						|
              },
 | 
						|
              "roles": {
 | 
						|
                  "type": "field",
 | 
						|
                  "required": true,
 | 
						|
                  "read_only": false,
 | 
						|
                  "label": "R\u00f4les"
 | 
						|
              }
 | 
						|
          }
 | 
						|
      }
 | 
						|
  }
 | 
						|
 | 
						|
Filtres Django
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``club__name``
 | 
						|
* ``club__email``
 | 
						|
* ``club__note__alias__name``
 | 
						|
* ``club__note__alias__normalized_name``
 | 
						|
* ``user__username``
 | 
						|
* ``user__last_name``
 | 
						|
* ``user__first_name``
 | 
						|
* ``user__email``
 | 
						|
* ``user__note__alias__name``
 | 
						|
* ``user__note__alias__normalized_name``
 | 
						|
* ``date_start``
 | 
						|
* ``date_end``
 | 
						|
* ``fee``
 | 
						|
* ``roles``
 | 
						|
 | 
						|
Tris possible
 | 
						|
~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``id``
 | 
						|
* ``date_start``
 | 
						|
* ``date_end``
 | 
						|
 | 
						|
Filtres de recherche
 | 
						|
~~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
* ``club__name`` (expression régulière)
 | 
						|
* ``club__email`` (expression régulière)
 | 
						|
* ``club__note__alias__name`` (expression régulière)
 | 
						|
* ``club__note__alias__normalized_name`` (expression régulière)
 | 
						|
* ``user__username`` (expression régulière)
 | 
						|
* ``user__last_name`` (expression régulière)
 | 
						|
* ``user__first_name`` (expression régulière)
 | 
						|
* ``user__email`` (expression régulière)
 | 
						|
* ``user__note__alias__name`` (expression régulière)
 | 
						|
* ``user__note__alias__normalized_name`` (expression régulière)
 | 
						|
* ``roles__name`` (expression régulière)
 | 
						|
 |