WIP: 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'