Monday, November 6, 2023

memo.kriko.online

 notes en vrac

  • fonctionne avec chrome et avec safari

  • implémente grid
il faut importer vue.js et axios.js explicitement dans la vue (template)

  • auth google
voir les credentials dans https://console.cloud.google.com/
section API
projet py4web myclientapp

BUG avec compte de bob
workaround
modif de ~/admin/backup/2023-12-08/files/.local/lib/python3.11/site-packages/py4web/utils/auth_plugins/__init__.py
sauvegardé dans /home/kriko/tests/docker/py4web/bulblok_dev/backup

A reporter en cas d'upgrade de py4web

groupe dans table auth_user_tag_default

  • shell depuis le container ( depuis parent de apps)
py4web shell apps
  • connexion a la dB
from apps._default import db
  • pour requetes et les mises à jour 
query 
q=db.memoire.id >1

maj
db(q).update(owner=1)
db.commit()

  • aggregats
count=db.memoire.id.count()
nb=db().select(db.memoire.notebook, count,groupby=db.memoire.notebook)

  • jointures
bonne lutte

entre autres du au fait qu'il faut caster les champs avant de requeter dans mon cas


Query :
w=db.memoire.notebook.cast(cast_as='integer',length=None)==db.notebook.id
rem : cast nécessaire que sur notebook

requete complete
print(db(w).select(db.memoire.id,db.notebook.name,orderby=db.memoire.id))

rem :
  1. cast demande un type et une longueur. pour integer None suffit. pour string important.
  2. orderby semble nécessaire
  3. utiliser la forme '._select' pour voir ce que ca donne avec postgresql
    puis tester avec psql - un peu lourd ...
    selectionner docker comme database
    finir les requetes par ;
    ex : select memoire.id,notebook.name from memoire,notebook where memoire.notebook=notebook.id::text ;
    ici cast en text

  • javascript sa mère
    • se mefier de console.log dans axios.  le mettre dans le retour 

      ex :
      x=axios.get(
      callback_url,
      {params: {"selitems_fordeletion": JSON.stringify(checkedElements) }}).then((result) => {
      this.nbdeleted=result.data.nbde;
      console.log(this.nbdeleted);
      });


    • convertir un tableau js pour que py4web l'utilise  ; convertir avec json.strinify(array)

sessions
les server side sessions pour conserver variables
mise en place : dans settings.py indiquer database. 
test en cours avec sqlite.

le moyen de memoriser :

session['counter']= session.get("counter", 0) + 10

c'est bizarre.
- il semble que le session.get cree la structure qui permet de memoriser
- sssion['count']= est indispensable pour mémoriser. session.count est à oublier


Reinit

pour la partie dev si on perd la DB c'est chiant.
pour repartir proprement :
- supprimer le repertoire postgres-data
- verifier que les settings de migrate sont à False (les 2)
- dc up -d
- copier le fichier à restaurer dans /tmp
par exemple 20240219_224308.tar
dans tools
./restore_postgres.sh 20240219_224308.tar
-aller dans admin/dashboard : reload les applis
- se reconnecter

___
au passage.
pas de fichiers dans databases à part sql.log
verifier que les settings de migrate sont à False (les 2)
testé ca doit marcher pour un redemarrage


2 comments:

  1. todo ( 10 dec)
    faire la partie update

    - regarder render pour le html
    - regarder si pas mieux optimiser en gardant l'id du notebook pluto que son nom

    ReplyDelete
  2. gerer la grille qui permet de gerer les notebook - saisir un nouveau notebook.
    doit on gerer l'unicité du nom ? pas sûr ...

    ReplyDelete

IA agentique. bla bla

 Actuellement, l’un des principaux obstacles à la réalisation du plein potentiel des agents d’IA réside dans leur incapacité à communiquer e...