Petite-cueillerisation de la branche arn-prod
Parce-ce que si ça n'est plus un fork, qu'est-ce que ça peut bien être ?
Il reste encore plein de taf, mais pour l'heure les migrations passent \o/.
Modifs apportées par arn
-
invoices généralisés en "bills" pour gérer aussi les membershipfee et donation ➡ normalement c'est OK, géré via les migrations de cette MR, valider avec les préprods que les données sont toutoujours là après migration −Jocelyn - factorisation des aspects réseaux de VPS/VPN/HousingConfiguration dans une classe IPConfiguration
- mécanisme des requests, pour permettre aux adhérents de demander un nouveau service depuis leur espace adhérent
- mécanisme des hooks, pour s'interfacer avec l'infra pour provisionner / obtenir l'état de services
- refonte d'autres aspects techniques des Configuration à coup de polymorphisme (liés aux nouveaux mécanismes de requests et hooks, aussi pour avoir des vues admin ~unifiées)
- refonte des vues avec bootstrap (suppression de foundation), et aussi des formulaires avec crispy_forms
-
rework de la page d'acceuil de l'admin (via un mécanisme discutable, en l'état c'est pas autogénéré en fonction des modules activés) -
Rendre dynamique, -
déclarer les entrées de menu pour les apps non utilisées par ARN
-
trucs hardcodé spécifique à arn à nettoyer ?
-
(/var/www/adherents.arn-fai.net, wiki.arn-fai.net, /vagrant, ...) [ ] "nous importons les comptes tous les 1 à 2 mois..."-
des templates dans arn/ ? -
"votre cigogne dévouée" dans un template de mail -
des subnets dans coin/resources/models.py (89.234, ...) -
dans les settings: EXTRA_TEMPLATE_DIRS, SITE_TITLE, IP_ALLOCATION_MESSAGE [ ] couleurs dans local.css-
logo_ARN (fichier svg, + ref dans menu.html) -
peut-être une ref à sans-nuage (c.f. external account) ou ptete pas...
autre trucs à discuter / résoudre
-
n'afficher le bouton « demander un abonnement » que si il y a au moins une offre requestable -
remettre au propre le merdier des migrations :| - dans quelle mesure les gens sont ok avec les nouvelles fonctionnalité et dans quelle mesure ça corresponds bien (ou autre contraire conflicte) avec leur modèle de fonctionnement
-
suppression brutale de l'interface VPN<->ldap utilisée par illyse(?)... - sur les vues:
-
certaines vues n'ont pas été retravaillées (typiquement celles pas utilisée par ARN ;/) à minima je crois qu'il y a : simple_dsl, et liste mails ? -
vue "mes infos" : la personne peut désormais tout le temps éditer ses infos elle meme. (c.f. aussi dans members/views.py, un 'if settings.MEMBER_CAN_EDIT a été enlevé... pas 100% sur pourquoi :|) -> À réimplémenter, éviter par contre d'avoir 2 templates -
vue "mes abonnements" : il y a un bouton "demander un nouvel abonnement", peut-être qu'on pourrait vouloir le désactiver si le FAI ne fonctionne pas comme ça ... (c.f. nouvelle propriété 'requestable' des offres) -
apu VPN_SECRETS_TRANSMISSION_METHOD
-
- misc truc techniques:
-
la suppression des configuration et/ou abonnement et/ou ipsubnet a tendance à crasher à cause de tout le bronx de polymorphisme et c'est pas clair de pourquoi ni de comment le résoudre (c.f. tentative de fix avec bulk_related_objects mais pas suffisant) -
provision_view : try/except commenté..? -
méthode _has_hook_state bizarre par cohérente avec les autres méthodes qui font le même genre de truc?
-
Trucs cassés (tests avec les donnés faimaison)
-
https://coin-demo.faimaison.net/admin/ affiche toutes les entrées, même si on a qu'une partie des droits -
https://coin-demo.faimaison.net/admin/ m'affiche une page vide (pour un utilisateur non admin mais avec certains droits) -
https://coin-demo.faimaison.net/members/invoices/ renvoie une erreur 500 -
Il va peut-être falloir reprendre le dossier de templates custom faimaison pour les adapter à la nouvelle sauce
Petites notes à destination de ARN
local_settings.py à compléter :
SITE_TITLE = "ARN - Espace adhérent"
EXTRA
IP_ALLOCATION_MESSAGE="{ip} to {member.pk} ({member.username} - {member.first_name} {member.last_name}) (for offer {offer}, {ref})"
EXTRA_TEMPLATE_DIRS = ('./arn/templates',)
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'isp_customizations/arn/static/'),
]
SITE_LOGO_URL = '/static/arn/img/logo_ARN.svg'
Edited by alexAubin