Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pod v4 MAIN #1229

Open
wants to merge 56 commits into
base: main
Choose a base branch
from
Open

Pod v4 MAIN #1229

wants to merge 56 commits into from

Conversation

Badatos
Copy link
Collaborator

@Badatos Badatos commented Nov 21, 2024

This PR is here to compare changes mades from Pod V3 DEV to Pod V4.

Summary of changes:

  • Replace Django 3.2 by 4.2
  • Drop Python 3.8 from compatible py versions, and add 3.12
  • Drop Compatibility with ES 6 & 7. Default to ES 8
  • Remove LTI compatibility (until lti_provider has been upgraded > 1.0, with upgraded oauth2)
  • Remove Shibboleth authentification (Brown-University-Library/django-shibboleth-remoteuser hasn't been updated since Jan 20, 2021 and isn't compatible with Django 4.2)

Detailed changes:

  • Improve security in pod playlists, as suggested by CodeQL
  • Remove USE_L10N deprecated param
  • Replace some re_path() by path()
  • Replace remaining ugettext by gettext
  • Replace admin.site.register() call by @admin.register decorator
  • Replace HTTP_X_REQUESTED_WITH by headers={"x-requested-with"
  • Replace request.META by headers
  • Replace assertQuerysetEqual by assertQuerySetEqual
  • Replace force_text by force_str
  • Remove default_app_config in init.py
  • Replace js_asset by django.templatetags.static, as js_asset is deprecated
  • Only run cut tests when USE_CUT==True
  • Only run dressing tests when USE_DRESSING==True
  • Replace deprecated django-tagging by django-tagulous
  • Use Tagulous to display a tag cloud with tags assigned to videos
  • Store tag list in CACHE
  • Replace "order" by "date_added" in channel video sorting field
  • Upgrade all py packages
  • add a reindex_videos script to recreate ES video index

Badatos and others added 13 commits October 24, 2024 12:10
* Upgrade securtity dependances
* Remove deprecated django-tagging
* Add new django-tagulous
* Elasticsearch default version is Now 8 (remove compatibility with ES 6)
* Replace deprecated ugettext_lazy by gettext_lazy
* Add some temporary deprecations Hacks for cas-client & Chunked-upload
* Replace deprecated url() by re_path()
* Disable all Pods apps by default
* Correct error handling for ElasticSearch
# Conflicts:
#	pod/settings.py
* Replace some re_path() by path()
* Replace remaining ugettext by gettext
* Replace admin.site.register() call by @admin.register decorator
* Replace HTTP_X_REQUESTED_WITH by `headers={"x-requested-with"`
* Replace request.META by headers
* Replace `assertQuerysetEqual` by `assertQuerySetEqual`
* Replace force_text by force_str
* Remove default_app_config in __init__.py
…select2 CSS calls)

* Correct Enrichment form validation process
* Replace Django 3.2 by 4.2 in all links
# Conflicts:
#	pod/settings.py
@Badatos Badatos self-assigned this Nov 21, 2024
pod/playlist/views.py Fixed Show fixed Hide fixed
pod/playlist/views.py Fixed Show fixed Hide fixed
pod/playlist/views.py Fixed Show fixed Hide fixed
pod/playlist/views.py Fixed Show fixed Hide fixed
pod/playlist/views.py Fixed Show fixed Hide fixed
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
pod/playlist/views.py Fixed Show fixed Hide fixed
@Badatos Badatos changed the base branch from develop to main December 4, 2024 09:05
@Badatos Badatos changed the title [NOT TO MERGE] Pod v4 new Pod v4 MAIN Dec 4, 2024
@Badatos Badatos marked this pull request as ready for review December 4, 2024 09:14
Copy link
Collaborator

@LoicBonavent LoicBonavent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bravo ! Vraiment, super boulot !
Pour ma part, j'ai bien compris les changements suivants :

  • remplacement ugettext_lazy par gettext_lazy,
  • remplacement urls par re_path
  • remplacement force_text par force_str
  • remplacement tagging par tagulous.models
  • remplacement pour les asserts (ex: assertNotEquals par assertNotEqual)
  • remplacement pour les requêtes AJAX, is_ajax(request)
  • remplacement CKEditor
  • les valeurs par défaut à False maintenant
  • la gestion des header (referer, x-requested...)
  • la gestion des @admin.register
  • la modification vis-à-vis de la qualité du code (paramètres, espaces, refactor...)
  • le script de réindexation ES des videos
  • les modifications vis-à-vis d'Elasticsearch
  • le fait de supprimer le deprecated USE_L10N

Par contre, je n'ai pas compris les modifications vis-à-vis de :

  • Typing,
  • la suppresion des short_description
  • les modifications vis-à-vis de CustomFileModel
    Par quoi ces dernières modifications se traduisent ?

@Badatos
Copy link
Collaborator Author

Badatos commented Jan 31, 2025

Bravo ! Vraiment, super boulot ! Pour ma part, j'ai bien compris les changements suivants :

Merci ;)

  • remplacement ugettext_lazy par gettext_lazy,
  • remplacement urls par re_path
  • remplacement force_text par force_str
  • remplacement tagging par tagulous.models
  • remplacement pour les asserts (ex: assertNotEquals par assertNotEqual)
  • remplacement pour les requêtes AJAX, is_ajax(request)
  • remplacement CKEditor
  • les valeurs par défaut à False maintenant
  • la gestion des header (referer, x-requested...)
  • la gestion des @admin.register
  • la modification vis-à-vis de la qualité du code (paramètres, espaces, refactor...)
  • le script de réindexation ES des videos
  • les modifications vis-à-vis d'Elasticsearch
  • le fait de supprimer le deprecated USE_L10N

Par contre, je n'ai pas compris les modifications vis-à-vis de :

  • Typing,

As-tu un exemple ? J'ai fait cette PR l'an dernier et j'ai une toute petite mémoire ^^.
Il me semble si on parle de la même chose que c'est une histoire de version de Python.
Par exemple, en Python 3.9, on pouvait définir le retour d'une fonction ainsi : Optional[str], mais en 3.10 cette notation est deprecated et est remplacée par str | None (que je trouve plus claire d'ailleurs)

  • la suppresion des short_description
  • les modifications vis-à-vis de CustomFileModel
    Par quoi ces dernières modifications se traduisent ?

As-tu des exemples pour me rafraichir la mémoire ? (n'hésites-pas à commenter directement dans les lignes de code sur Github)

def clickable_email(self, obj):
email = obj.email
return format_html('<a href="mailto:{}">{}</a>', email, email)

clickable_email.allow_tags = True
clickable_email.short_description = _("Email")
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai trouvé ! En fait les short_description sont remplacés par un tag @admin.display(description=_("xxx")) (cf authentication/admin.py)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour l'explication

@Badatos
Copy link
Collaborator Author

Badatos commented Jan 31, 2025

Ah oui, je crois me rappeler que j'ai simplement mis "en pause" les CustomFileModel, car ils ne fonctionnent pas encore avec Pod V4.
Ils demanderont un travail de développement supplémentaire pour être opérationnels, mais j'ai trouvé que cette PR était assez grosse sans rajouter encore ce dev dedans ^^

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, pour Le coup du typing, il a juste été supprimé ici car inutile dans ce fichier; mais il est toujours appelé ailleurs.
EN fait, j'avais peur qu'il y ait eu des modifications en lien avec Django 4, ce qui n'est pas le cas; donc nickel. Merci

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants