Prérequis:
- Je pars du principe que
brewest déjà installé (sinon suivre leurs instructions) - Avoir copié le fichier quelque part sur sa machine
Ouvrir un terminal, puis:
| Math.sumPrecise(new Array(...document.querySelectorAll('[data-testid="vat-total-amount"]')).map((el) => parseFloat(el.innerText.split('EUR')[0].replace(',', '.')))) |
| SELECT COUNT(*) | |
| FROM project | |
| WHERE id IN ( | |
| SELECT p.project_id | |
| FROM bill b | |
| JOIN person p ON b.payer_id = p.id | |
| GROUP BY p.project_id | |
| HAVING COUNT(*) > 10 | |
| AND MAX(b.date) > CURRENT_DATE - INTERVAL '90 days' | |
| ); |
| #!/usr/bin/env -S uv run | |
| # /// script | |
| # requires-python = ">=3.12" | |
| # dependencies = [ | |
| # "requests>=2.31.0", | |
| # ] | |
| # /// | |
| import requests | |
| import json |
Prérequis:
brew est déjà installé (sinon suivre leurs instructions)Ouvrir un terminal, puis:
I hereby claim:
To claim this, I am signing this object:
| """A pelican plugin to read Obsidian files and import them as pelican Articles. | |
| This reads the tags made with hashtags and render them as pelican tags instead | |
| (they won't be present in the output). | |
| Adds the title in the output, and specify a default dummy date. | |
| """ | |
| from pathlib import Path |
| <?xml version="1.0"?> | |
| <t t-name="stock.report_deliverylist"> | |
| <t t-call="web.basic_layout"> | |
| <div class="page o_report_layout_boxed"> | |
| <t t-set="totals" t-value="{}"></t> | |
| <t t-foreach="docs" t-as="o" t-if="o.state!='done'"> | |
| <t t-set="lines" t-value="o.move_lines.filtered(lambda x: x.product_uom_qty)"/> | |
| <t t-foreach="lines" t-as="move"> | |
| <t t-if="not(move.product_id.packaging_ids)"> |
| <?xml version="1.0"?> | |
| <t t-name="stock.report_delivery_document"> | |
| <t t-call="web.html_container"> | |
| <t t-call="web.external_layout"> | |
| <t t-set="o" t-value="o.with_context(lang=o.partner_id.lang)"/> | |
| <t t-set="partner" t-value="o.partner_id or (o.move_lines and o.move_lines[0].partner_id) or False"/> | |
| <div class="page"> | |
| <h2><span t-field="partner.self.name"/></h2> | |
| <div class="row"> |
| server { | |
| server_name odooproxy.vieuxsinge.com; | |
| location / { | |
| # Activer le proxy | |
| proxy_set_header X-Real-IP $remote_addr; | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| proxy_pass https://brasserieduvieuxsinge.auneor-conseil.fr; | |
| proxy_redirect off; |
| document.querySelectorAll("#messages-list > div").forEach( | |
| item => { | |
| let id=item.id.replace('msg-', ''); | |
| $.get(`https://mobile.free.fr/account/messagerie-vocale/message_vocal?id=${id}&action=delete`); | |
| }); |