changeset 09eea0bc77d2 in www.tryton.org:default
details: https://hg.tryton.org/www.tryton.org?cmd=changeset&node=09eea0bc77d2
description:
Use function to construct downloads and videos URLs
diffstat:
app.py | 22 ++
templates/presentations.html | 332 +++++++++++++++++++++---------------------
2 files changed, 188 insertions(+), 166 deletions(-)
diffs (856 lines):
diff -r 6f8e9af6f3fc -r 09eea0bc77d2 app.py
--- a/app.py Sun Sep 18 16:53:38 2022 +0200
+++ b/app.py Sun Sep 18 18:25:10 2022 +0200
@@ -67,6 +67,10 @@
'presentations-alt', 'contribute-alt', 'foundation-alt', 'supporters-alt',
'donate-alt', 'donate_thanks', 'donate_cancel', 'service_providers-alt',
'sitemap.xml']
+app.config['DOWNLOADS_DOMAIN'] = os.environ.get(
+ 'DOWNLOADS_DOMAIN', 'downloads.tryton.org')
+app.config['VIDEOS_DOMAIN'] = os.environ.get(
+ 'VIDEOS_DOMAIN', 'videos.tryton.org')
app.config['CDN_DOMAIN'] = os.environ.get('CDN_DOMAIN')
app.config['CDN_HTTPS'] = ast.literal_eval(os.environ.get('CDN_HTTPS', 'True'))
app.config['SITEMAP_IGNORE_ENDPOINTS'] = ['events', 'events-alt', 'events-ics']
@@ -122,6 +126,24 @@
return _slugify_hyphenate_re.sub('-', value)
+def url_for_downloads(*args):
+ return urljoin('//' + app.config['DOWNLOADS_DOMAIN'], os.path.join(*args))
+
+
[email protected]_processor
+def inject_url_for_dowloads():
+ return dict(url_for_downloads=url_for_downloads)
+
+
+def url_for_videos(*args):
+ return urljoin('//' + app.config['VIDEOS_DOMAIN'], os.path.join(*args))
+
+
[email protected]_processor
+def inject_url_for_videos():
+ return dict(url_for_videos=url_for_videos)
+
+
def cdn_url_for(*args, **kwargs):
if app.config['CDN_DOMAIN']:
return _cdn_url_for(*args, **kwargs)
diff -r 6f8e9af6f3fc -r 09eea0bc77d2 templates/presentations.html
--- a/templates/presentations.html Sun Sep 18 16:53:38 2022 +0200
+++ b/templates/presentations.html Sun Sep 18 18:25:10 2022 +0200
@@ -39,57 +39,57 @@
<h2 id="TSD2021">TSD2021</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Novedades%20Tryton%206.2.pdf">New
functionality in Tryton 6.2 and 6.0</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Novedades Tryton
6.2.pdf') }}">New functionality in Tryton 6.2 and 6.0</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/fSeE_1-Oqag">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Datalife%20-%204agro.pdf">Example
Verticalization: 4agro and agroalimentary sector</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Datalife - 4agro.pdf')
}}">Example Verticalization: 4agro and agroalimentary sector</a>,
<em>Nicolas Lopez</em>,
<a href="https://youtu.be/XXjdsATiHf8">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Presentacion%20Tryton%20Alicante%20calidad%202021.pps">Quality
management: Tryton for manufacturing companies</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Presentacion Tryton
Alicante calidad 2021.pps') }}">Quality management: Tryton for manufacturing
companies</a>,
<em>Yunior Lobo</em>,
<a href="https://youtu.be/m8rvxF37kA8">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Datalife%20-%20Confecci%C3%B3n%20en%20campo.pdf">Preparation
in field: Creating pallets using mobility</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Datalife - Confección en
campo.pdf') }}">Preparation in field: Creating pallets using mobility</a>,
<em>Sergio Morillo</em>,
<a href="https://youtu.be/z3wcqlI_e0s">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Conciliacion%20Bancaria%20con%20Tryton.pdf">Bank
Reconciliation with Tryton</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Conciliacion Bancaria
con Tryton.pdf') }}">Bank Reconciliation with Tryton</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/C0iUD6ukEzg">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TSD2021/Shopify.pdf">How to
connect Tryton with Shopify</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Shopify.pdf') }}">How to
connect Tryton with Shopify</a>,
<em>Adrià Tarroja Caubet</em>,
<a href="https://youtu.be/garUiAGkt20">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Tryton%20Academy.pdf">The Tryton
Academy: How to become a Tryton Expert</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Tryton Academy.pdf')
}}">The Tryton Academy: How to become a Tryton Expert</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/OACfO_JTTVE">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Presentacion%20Tryton%20Alicante%20Alimentacion%202021.pps">Tryton
as an integral solution for food manufacturing companies</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Presentacion Tryton%
Alicante Alimentacion 2021.pps') }}">Tryton as an integral solution for food
manufacturing companies</a>,
<em>Yunior Lobo</em>,
<a href="https://youtu.be/M_OTS35a5L4">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Datalife%20-%20Ley%2011%2021.pdf">Law
11/2021: Software formal obligations</a>,
+ <a href="{{ url_for_downloads('TSD2021', 'Datalife - Ley 11
21.pdf') }}">Law 11/2021: Software formal obligations</a>,
<em>Ramón Oliver</em>,
<a href="https://youtu.be/n3Uev06FXt0">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/Logistica_Inversa_TRYTON_2021.pdf">Package
reverse logistics: Tryton based managment model</a>,
+ <a href="{{ url_for_downloads('TSD2021',
'Logistica_Inversa_TRYTON_2021.pdf') }}">Package reverse logistics: Tryton
based managment model</a>,
<em>Javier Escudero</em>,
<a href="https://youtu.be/pZaW7LiKJ-E">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2021/04%20-%20Control%20horario.pdf">How to
implement attendance control in companies</a>,
+ <a href="{{ url_for_downloads('TSD2021', '04 - Control
horario.pdf') }}">How to implement attendance control in companies</a>,
<em>Marcos Sabater</em>,
<a href="https://youtu.be/Wocx3_kfkhY">Video</a>
</li>
@@ -104,32 +104,32 @@
<h2 id="TSD2019">TSD2019</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Bienvenida.pdf">Welcome and
presentation</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Bienvenida.pdf')
}}">Welcome and presentation</a>,
<em>Ricardo Laborda</em>,
<a href="https://youtu.be/p9yW0fxiiDs">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/What%20can%20Tryton%20offer%20to%20my%20company.pdf">What
can Tryton offer my company?</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'What can Tryton offer to
my company.pdf') }}">What can Tryton offer my company?</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/1LwzV7TsH-E">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/como_lo_hacen.html">Tryton: How they
do it</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'como_lo_hacen.html')
}}">Tryton: How they do it</a>,
<em>José Salvador</em>,
<a href="https://youtu.be/oLWkQelGqy0">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/builing_large_health_networks_gnuhealth.pdf">Tryton
and the GNU Health federation</a>,
+ <a href="{{ url_for_downloads('TSD2019',
'builing_large_health_networks_gnuhealth.pdf') }}">Tryton and the GNU Health
federation</a>,
<em>Luis Falcon</em>,
<a href="https://youtu.be/1GBFz59eXkA">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/4agro%20y%20el%20sector%20agroalimentario.pdf">4agro
and the agrolimentari sector</a>,
+ <a href="{{ url_for_downloads('TSD2019', '4agro y el sector
agroalimentario.pdf') }}">4agro and the agrolimentari sector</a>,
<em>Ricardo Laborda</em>,
<a href="https://youtu.be/ODn1jRtFv_E">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/eCommerce%20con%20Tryton.pdf">eCommerce
from Tryton</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'eCommerce con
Tryton.pdf') }}">eCommerce from Tryton</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/SqAgs7w3LPQ">Video</a>
</li>
@@ -139,47 +139,47 @@
<a href="https://youtu.be/DpnS2sJRHwY">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Caso%20%C3%A9xito%20Grupo%20Roca.pdf">Tryton
business case: Roca Group</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Caso éxito Grupo
Roca.pdf') }}">Tryton business case: Roca Group</a>,
<em>Ricardo Laborda</em>,
<a href="https://youtu.be/4rNzHsQjPC0">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Sistemas%20de%20movilidad%20para%20aportar%20m%C3%A1s%20valor_%20Tryvy.pdf">Mobility
systems to give value: tryvy</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Sistemas de movilidad
para aportar más valor_ Tryvy.pdf') }}">Mobility systems to give value:
tryvy</a>,
<em>Sergio Morillo</em>,
<a href="https://youtu.be/wezQlgOlYyc">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/4agro%20y%20el%20sector%20agroalimentario.pdf">Sale
Costs and Return Management</a>,
+ <a href="{{ url_for_downloads('TSD2019', '4agro y el sector
agroalimentario.pdf') }}">Sale Costs and Return Management</a>,
<em>Nicolas Lopez</em>,
<a href="https://youtu.be/caOe7rbaWDo">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Orientacion%20Tryton%20Industria%20Alimentaria.pps">Tryton
oriented to Food Industry</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Orientacion Tryton
Industria Alimentaria.pps') }}">Tryton oriented to Food Industry</a>,
<em>Jesus Rouco</em>,
<a href="https://youtu.be/G96cj-SU_3U">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Novedades%20Tryton%205.4%20y%205.2.pdf">New
functionalities on Tryton 5.4</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Novedades Tryton 5.4 y
5.2.pdf') }}">New functionalities on Tryton 5.4</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/MEXXmTPqTcI">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TSD2019/EDI.pdf">EDI and
Attendance Control</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'EDI.pdf') }}">EDI and
Attendance Control</a>,
<em>Ricardo Laborda</em>,
<a href="https://youtu.be/qy7Ftntbncc">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Localizacion%20Espa%C3%B1ola%20Jornadas%202019.pdf">Tryton
Spanish Localization</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Localizacion Española
Jornadas 2019.pdf') }}">Tryton Spanish Localization</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/NoYz0VfPjps">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Productividad%20en%20la%20gesti%C3%B3n%20financiera%20-%20Ejemplo%20de%20Intrastat.pdf">Productivity
in financial: Intrastat</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Productividad en la
gestión financiera - Ejemplo de Intrastat.pdf') }}">Productivity in financial:
Intrastat</a>,
<em>Ramón Oliver</em>,
<a href="https://youtu.be/l-x8wv7BR4Q">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TSD2019/Ciclo%20Vida%20Software%20libre%20sostenible.pdf">Tryton
and the lifecycle of Open Source</a>,
+ <a href="{{ url_for_downloads('TSD2019', 'Ciclo Vida Software
libre sostenible.pdf') }}">Tryton and the lifecycle of Open Source</a>,
<em>Nicolas Lopez</em>,
<a href="https://youtu.be/DntazOQE11M">Video</a>
</li>
@@ -194,17 +194,17 @@
<a href="https://youtu.be/ltNsxEu4l20">Video1</a>, <a
href="https://youtu.be/4nOYc5A2d_4">Video2</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUM2019/Managing%20a%20service%20company%20with%20Tryton.pdf">Managing
a service company with Tryton</a>,
+ <a href="{{ url_for_downloads('TUM2019', 'Managing a service
company with Tryton.pdf') }}">Managing a service company with Tryton</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/ZlCn6CcrH5k">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUM2019/shine.pdf">I used to
Excel, but now I Shine</a>,
+ <a href="{{ url_for_downloads('TUM2019', 'shine.pdf') }}">I used
to Excel, but now I Shine</a>,
<em>Albert Cervera i Areny</em>,
<a href="https://youtu.be/4XtOlxZOkHw">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUM2019/Building%20Mobile%20Application%20connected%20to%20Tryton.pdf">Building
mobile applications connected to Tryton</a>,
+ <a href="{{ url_for_downloads('TUM2019', 'Building Mobile
Application connected to Tryton.pdf') }}">Building mobile applications
connected to Tryton</a>,
<em>Sergi Almacellas Abellana</em>,
<a href="https://youtu.be/Afwj1nadb8Y">Video</a>
</li>
@@ -219,12 +219,12 @@
<a href="https://youtu.be/S1JmgNbNeeo">Video1</a>, <a
href="https://youtu.be/Oe-e1njvKek">Video2</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUM2019/warehouse_management.pdf">Use Case:
Tryton for warehouse management</a>,
+ <a href="{{ url_for_downloads('TUM2019',
'warehouse_management.pdf') }}">Use Case: Tryton for warehouse management</a>,
<em>Maxime Richez</em>
<a href="https://youtu.be/mFcfFhGz9wQ">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUM2019/lisp-erp/">Lisp
ERP</a>,
+ <a href="{{ url_for_downloads('TUM2019', 'lisp-erp') }}">Lisp
ERP</a>,
<em>Francesc Guillen</em>,
<a href="https://youtu.be/cuX1_RZIIvM">Video</a>
</li>
@@ -234,7 +234,7 @@
<h2 id="PyConFr2018">PyConFr 2018</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/PyConFr2018/optimisation-transactional-application.odp">Optimiser
une application principalement transactionnelle (retour d'expérience avec
Tryton)</a>,
+ <a href="{{ url_for_downloads('PyConFr2018',
'optimisation-transactional-application.odp') }}">Optimiser une application
principalement transactionnelle (retour d'expérience avec Tryton)</a>,
<em>Cédric Krier</em>,
<a href="https://youtu.be/dTJ4VPSbVZs">Video</a>
</li>
@@ -244,7 +244,7 @@
<h2 id="TUL2017">TUL2017</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/past-present-future-tryton.odp">Past,
Present and Future of Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'past-present-future-tryton.odp') }}">Past, Present and Future of Tryton</a>,
<em>Cédric Krier</em>,
Video <a href="https://youtu.be/Gw6kAXkOmMg">part 1</a> & <a
href="https://youtu.be/prKWX6LwOOI">part 2</a></li>
<li>
@@ -253,47 +253,47 @@
<a href="https://youtu.be/0q6JXq3PMz0">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/custom-webshop-1-month.odp">Custom
web-shop from scratch to production in 1 month</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'custom-webshop-1-month.odp') }}">Custom web-shop from scratch to production in
1 month</a>,
<em>Cédric Krier and Nicolas ÉVrard</em>,
<a href="https://youtu.be/MA1DnlnTy7I">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUL2017/kalenis.pdf">Kalenis:
Integrating LIMS & ERP</a>,
+ <a href="{{ url_for_downloads('TUL2017', 'kalenis.pdf')
}}">Kalenis: Integrating LIMS & ERP</a>,
<em>Sebastián Marró and Ignacio Parszyk</em>,
<a href="https://youtu.be/Iknsb16h8iM">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/tul2017_saluc_v1pdf.pdf">Demonstration
of a pre-purchase Process in Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'tul2017_saluc_v1pdf.pdf') }}">Demonstration of a pre-purchase Process in
Tryton</a>,
<em>Thierry Bruyere and Maxime Richez</em>,
<a href="https://youtu.be/atMO62IDP1c">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/paybox-cryptolog-modules.odp">Two new
modules for Tryton: Paybox payment system and electronic signature</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'paybox-cryptolog-modules.odp') }}">Two new modules for Tryton: Paybox payment
system and electronic signature</a>,
<em>Adrien Ben-Duc</em>,
<a href="https://youtu.be/5-2YoMV1wX0">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/PluggableBackends.odp">Pluggable
backends in Tryton: an how-to</a>,
+ <a href="{{ url_for_downloads('TUL2017', 'PluggableBackends.odp')
}}">Pluggable backends in Tryton: an how-to</a>,
<em>Nicolas Évrard</em>,
<a href="https://youtu.be/yRg2mHI8XBI">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/gnuhealth-franceville-gabon.odp">Gnu
Health Implementation in Franceville - Gabon: Connecting Diamonds</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'gnuhealth-franceville-gabon.odp') }}">Gnu Health Implementation in Franceville
- Gabon: Connecting Diamonds</a>,
<em>Armand Mpassy-Nzoumba</em>,
<a href="https://youtu.be/OwCBFqXwOkI">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/challenges-scaling-with-tryton.odp">A
few challenges when scaling with Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'challenges-scaling-with-tryton.odp') }}">A few challenges when scaling with
Tryton</a>,
<em>Jérémy Mousset</em>,
<a href="https://youtu.be/9w-1XUagZ2U">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/collect-payment-tryton-stripe.odp">Collect
payment with Tryton and Stripe</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'collect-payment-tryton-stripe.odp') }}">Collect payment with Tryton and
Stripe</a>,
<em>Cédric Krier</em>,
<a href="https://youtu.be/aQtlf0edENQ">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2017/tryton-based-web-stack.odp">A web
application and an API based on Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2017',
'tryton-based-web-stack.odp') }}">A web application and an API based on
Tryton</a>,
<em>Ali Kefia</em>,
<a href="https://youtu.be/uFajBwgB-60">Video</a>
</li>
@@ -308,89 +308,89 @@
<h2 id="TUB2016">TUB2016</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/new_features_42.pdf">New features in
4.2</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'new_features_42.pdf')
}}">New features in 4.2</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tub2016/new_features_in_42.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'new_features_in_42.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/billiard_balls_manufacture.pdf">Implementing
Tryton in a billiard balls manufacture</a>,
+ <a href="{{ url_for_downloads('TUB2016',
'billiard_balls_manufacture.pdf') }}">Implementing Tryton in a billiard balls
manufacture</a>,
<em>Maxime Richez & Thierry Bruyere</em>,
- <a
href="//videos.tryton.org/tub2016/billiard_balls_manufacture.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'billiard_balls_manufacture.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/tub-2016-prez-bus.pdf">How we used
tryton to build an Insurance ERP (part1)</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'tub-2016-prez-bus.pdf')
}}">How we used tryton to build an Insurance ERP (part1)</a>,
<em>Romain Séon & Frédéric Langevin</em>,
- <a
href="//videos.tryton.org/tub2016/insurance_erp_1.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'insurance_erp_1.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/tub-2016-prez-bus.pdf">How we used
tryton to build an Insurance ERP (part 2)</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'tub-2016-prez-bus.pdf')
}}">How we used tryton to build an Insurance ERP (part 2)</a>,
<em>Romain Séon & Frédéric Langevin</em>,
- <a
href="//videos.tryton.org/tub2016/insurance_erp_2.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'insurance_erp_2.html')
}}">Video</a>
</li>
<li>
Advocate Tax,
<em>Jonathan Levy</em>,
- <a href="//videos.tryton.org/tub2016/advocate_tax.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'advocate_tax.html')
}}">Video</a>
</li>
<li>
Adore,
<em>Udo Spallek</em>,
- <a href="//videos.tryton.org/tub2016/adore.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'adore.html') }}">Video</a>
</li>
<li>
SISalp,
<em>Dominique Chabord</em>,
- <a href="//videos.tryton.org/tub2016/sisalp.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'sisalp.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/distributed.pdf">Distributed
Transactions</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'distributed.pdf')
}}">Distributed Transactions</a>,
<em>Nicolas Évrard</em>,
- <a
href="//videos.tryton.org/tub2016/distributed_transactions.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'distributed_transactions.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/user_application.pdf">User
Application</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'user_application.pdf')
}}">User Application</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tub2016/user_application.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'user_application.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/tub-2016-prez-tech.pdf">How Tryton is
customized to empower Coog</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'tub-2016-prez-tech.pdf')
}}">How Tryton is customized to empower Coog</a>,
<em>Jean Cavallo & Ali Kefia</em>,
- <a
href="//videos.tryton.org/tub2016/how_trton_is_customized_to_empower_coog.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'how_trton_is_customized_to_empower_coog.html') }}">Video</a>
</li>
<li>
Application Performance Monitoring,
<em>Albert Cervera i Areny</em>,
- <a
href="//videos.tryton.org/tub2016/application_performance_monitoring.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'application_performance_monitoring.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/who_are_you.pdf">Tryton
Authentication</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'who_are_you.pdf')
}}">Tryton Authentication</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tub2016/tryton_authentification.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'tryton_authentification.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/tryton-integration-drupal.pdf">Tryton
integrates with Drupal</a>,
+ <a href="{{ url_for_downloads('TUB2016',
'tryton-integration-drupal.pdf') }}">Tryton integrates with Drupal</a>,
<em>Lucho Rossi</em>,
- <a
href="//videos.tryton.org/tub2016/tryton_with_drupal.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'tryton_with_drupal.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/developing-on-trunk">Why you should
develop on trunk?</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'developing-on-trunk')
}}">Why you should develop on trunk?</a>,
<em>Sergi Almacellas Abellana</em>,
- <a
href="//videos.tryton.org/tub2016/why_you_should_develop_on_trunk.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'why_you_should_develop_on_trunk.html') }}">Video</a>
</li>
<li>
Universal Business Language,
<em>Dominique Chabord</em>,
- <a href="//videos.tryton.org/tub2016/support_UBL.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'support_UBL.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2016/postgresql.pdf">PostgreSQL: present
and near future</a>,
+ <a href="{{ url_for_downloads('TUB2016', 'postgresql.pdf')
}}">PostgreSQL: present and near future</a>,
<em>Albert Cervera i Areny</em>,
- <a href="//videos.tryton.org/tub2016/postgresql.html">Video</a>
+ <a href="{{ url_for_videos('tub2016', 'postgresql.html')
}}">Video</a>
</li>
<li>
A Raft of Tryton Modules,
<em>Albert Cervera i Areny</em>,
- <a
href="//videos.tryton.org/tub2016/a_raft_of_tryton_modules.html">Video</a>
+ <a href="{{ url_for_videos('tub2016',
'a_raft_of_tryton_modules.html') }}">Video</a>
</li>
</ul>
</section>
@@ -398,7 +398,7 @@
<h2 id="jdl2016">Jeudi du Libre 2016</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/jeudidulibre2016/tryton-jdl.pdf">Tryton, un
framework libre d'application métier</a>,
+ <a href="{{ url_for_downloads('jeudidulibre2016',
'tryton-jdl.pdf') }}">Tryton, un framework libre d'application métier</a>,
<em>Cédric Krier</em>
</li>
</ul>
@@ -407,73 +407,73 @@
<h2 id="TUBA2015">TUBA2015</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/tryton-project.pdf">Tryton History
from the very beginning</a>,
+ <a href="{{ url_for_downloads('TUBA2015', 'tryton-project.pdf')
}}">Tryton History from the very beginning</a>,
<em>Nicolas Évrard</em>,
- <a
href="//videos.tryton.org/tuba2015/NicolasEvrard-TrytonHistoryFromTheVeryBeginning.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'NicolasEvrard-TrytonHistoryFromTheVeryBeginning.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/silex_why_we_have_chosen_tryton.pdf">Why
we have chosen Tryton - from homemade proprietary ERPs to free software</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'silex_why_we_have_chosen_tryton.pdf') }}">Why we have chosen Tryton - from
homemade proprietary ERPs to free software</a>,
<em>Roberto Novaes</em>,
- <a
href="//videos.tryton.org/tuba2015/RobertoNovaes-WhyWeHaveChosenTryton.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'RobertoNovaes-WhyWeHaveChosenTryton.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/gcoop_tryton_in_argentina.pdf">Tryton
in Argentina, our localization and use</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'gcoop_tryton_in_argentina.pdf') }}">Tryton in Argentina, our localization and
use</a>,
<em>Pablo Vannini</em>
</li>
<li>
sao, Tryton in your browser,
<em>Cédric Krier and Nicolas Évrard</em>,
- <a
href="//videos.tryton.org/tuba2015/CedricKrier-NicolasEvrard-SAO-TrytonInYourBrowser.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'CedricKrier-NicolasEvrard-SAO-TrytonInYourBrowser.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/gnusolidario_gnuhealth_new_features.pdf">New
features in GNU Health 3.0</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'gnusolidario_gnuhealth_new_features.pdf') }}">New features in GNU Health
3.0</a>,
<em>Luis Falcón</em>,
- <a
href="//videos.tryton.org/tuba2015/LuisFalcon-NewFeaturesInGNUHealth3.0.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'LuisFalcon-NewFeaturesInGNUHealth3.0.html') }}">Video</a>
</li>
<li>
Tryton Implementations, our experience without programmers,
<em>Agustin Montagna</em>,
- <a
href="//videos.tryton.org/tuba2015/AgustinMontagna-TrytonImplementations-OurExperienceWithoutProgrammers.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'AgustinMontagna-TrytonImplementations-OurExperienceWithoutProgrammers.html')
}}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/axel_braun_building_packages_for_tryton.pdf">Building
packages for Tryton</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'axel_braun_building_packages_for_tryton.pdf') }}">Building packages for
Tryton</a>,
<em>Axel Braun</em>,
- <a
href="//videos.tryton.org/tuba2015/AxelBraun-BuildingPackagesForTryton.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'AxelBraun-BuildingPackagesForTryton.html') }}">Video</a>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUBA2015/mr_robot/">Mr
Robot</a>,
+ <a href="{{ url_for_downloads('TUBA2015', 'mr_robot') }}">Mr
Robot</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tuba2015/CedricKrier-MrRobot.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015', 'CedricKrier-MrRobot.html')
}}">Video</a>
</li>
<li>
A newbie introduction to proteus,
<em>Nicolas Évrard</em>,
- <a
href="//videos.tryton.org/tuba2015/NicolasEvrard-ANewbieIntroductionToProteus.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'NicolasEvrard-ANewbieIntroductionToProteus.html') }}">Video</a>
</li>
<li>
typi: The Tryton Package Index,
<em>Nicolas Èvrard</em>,
- <a
href="//videos.tryton.org/tuba2015/NicolasEvrard-TypiTheTrytonPackageIndex.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'NicolasEvrard-TypiTheTrytonPackageIndex.html') }}">Video</a>
</li>
<li>
Nahual Inclusion Technology,
<em>Cesar Tynik</em>,
- <a
href="//videos.tryton.org/tuba2015/CesarTynik-NahualInclusionTechnology.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'CesarTynik-NahualInclusionTechnology.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/axel_braun_building_live_cd_for_tryton.pdf">Running
Tryton from a CD - and how to adapt a live system</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'axel_braun_building_live_cd_for_tryton.pdf') }}">Running Tryton from a CD -
and how to adapt a live system</a>,
<em>Axel Braun</em>,
- <a
href="//videos.tryton.org/tuba2015/AxelBraun-RunningTrytonFromACD-andHowToAdaptALiveSystem.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'AxelBraun-RunningTrytonFromACD-andHowToAdaptALiveSystem.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/design_pattern/">Design Patterns in
Tryton</a>,
+ <a href="{{ url_for_downloads('TUBA2015', 'design_pattern')
}}">Design Patterns in Tryton</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tuba2015/CedricKrier-DesignPatternsInTryton.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'CedricKrier-DesignPatternsInTryton.html') }}">Video</a>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUBA2015/thymbra_occhiolino.pdf">Integrating
Tryton + Occhiolino in Food Testing Laboratory</a>,
+ <a href="{{ url_for_downloads('TUBA2015',
'thymbra_occhiolino.pdf') }}">Integrating Tryton + Occhiolino in Food Testing
Laboratory</a>,
<em>Sebastián Marró and Favio Dutria</em>,
- <a
href="//videos.tryton.org/tuba2015/SebastianMarro-FavioDutria-IntegratingTryton+OcchiolinoInFoodTestingLaboratory.html">Video</a>
+ <a href="{{ url_for_videos('tuba2015',
'SebastianMarro-FavioDutria-IntegratingTryton+OcchiolinoInFoodTestingLaboratory.html')
}}">Video</a>
</li>
</ul>
</section>
@@ -481,51 +481,51 @@
<h2 id="TUL2014">TUL2014</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/tryton_34_and_future/">Tryton 3.4 and
future</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'tryton_34_and_future')
}}">Tryton 3.4 and future</a>,
<em>Cédric Krier</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/TUL2014_OBS_und_SUSEStudio.odp">Building
Distribution packages with Open Build Service</a>,
+ <a href="{{ url_for_downloads('TUL2014',
'TUL2014_OBS_und_SUSEStudio.odp') }}">Building Distribution packages with Open
Build Service</a>,
<em>Axel Braun</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/Docker%20Tryton.pdf">Dockerized Tryton
Deployments</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'Docker Tryton.pdf')
}}">Dockerized Tryton Deployments</a>,
<em>Prakash Pandey</em> & <em>Sharoon Thomas</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/WSGI_Deployment.pdf">Tryton WSGI
Deployment: A field report</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'WSGI_Deployment.pdf')
}}">Tryton WSGI Deployment: A field report</a>,
<em>Robin Baumgartner</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/occhiolino_english_tul_2014.pdf">Occhiolino:
The GNU LIMS (Laboratory Information Management System)</a>,
+ <a href="{{ url_for_downloads('TUL2014',
'occhiolino_english_tul_2014.pdf') }}">Occhiolino: The GNU LIMS (Laboratory
Information Management System)</a>,
<em>Sebastián Marró</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/doc-and-babi.pdf">Documentation and
BAsic Business Intelligence updates</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'doc-and-babi.pdf')
}}">Documentation and BAsic Business Intelligence updates</a>,
<em>Albert Cervera i Areny</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/Open%20source%20projects%20need%20more%20than%20good%20code.pdf">Open-Source
Projects Need More Than Good Code</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'Open source projects
need more than good code.pdf') }}">Open-Source Projects Need More Than Good
Code</a>,
<em>Varun Kumar</em> & <em>Sharoon Thomas</em>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUL2014/html_webkit.pdf">The
HTML/Webkit report engine</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'html_webkit.pdf')
}}">The HTML/Webkit report engine</a>,
<em>Umang Arora</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/Features%20in%20GNU%20Health%2028.pdf">New
features in GNU Health 2.8</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'Features in GNU Health
28.pdf') }}">New features in GNU Health 2.8</a>,
<em>Luis Falcón</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/synchronise_engine/">Synchronise
engine: The case study of Jamaica health records</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'synchronise_engine')
}}">Synchronise engine: The case study of Jamaica health records</a>,
<em>Cédric Krier</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/flask_tryton/">Flask-Tryton: Tailored
web app</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'flask_tryton')
}}">Flask-Tryton: Tailored web app</a>,
<em>Cédric Krier</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2014/crash-course.pdf">Writing your first
module for tryton</a>,
+ <a href="{{ url_for_downloads('TUL2014', 'crash-course.pdf')
}}">Writing your first module for tryton</a>,
<em>Nicolas Évrard</em>
</li>
</ul>
@@ -534,129 +534,129 @@
<h2 id="TUB2013">TUB2013</h2>
<ul>
<li>
- <a href="//downloads-cdn.tryton.org/TUB2013/no_localization/">Why
you should not do localization modules?</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'no_localization')
}}">Why you should not do localization modules?</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tub2013/WhyYouShouldNotDoLocalizationModules.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/WhyYouShouldNotDoLocalizationModules_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'WhyYouShouldNotDoLocalizationModules.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'WhyYouShouldNotDoLocalizationModules_small.html') }}">small size</a>)
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUB2013/release_module/">How
to release module</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'release_module') }}">How
to release module</a>,
<em>Cédric Krier</em>,
- <a
href="//videos.tryton.org/tub2013/HowToReleaseModule.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/HowToReleaseModule_small.html">small size</a>)
+ <a href="{{ url_for_videos('tub2013', 'HowToReleaseModule.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'HowToReleaseModule_small.html') }}">small size</a>)
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2013/TeleTryton_for_dumbs.pdf">TéléTryton</a>,
+ <a href="{{ url_for_downloads('TUB2013',
'TeleTryton_for_dumbs.pdf') }}">TéléTryton</a>,
<em>Dominique Chabord</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2013/cooperatives-and-free-software.pdf">Cooperatives
and Free Software, Our experience with Tryton</a>,
+ <a href="{{ url_for_downloads('TUB2013',
'cooperatives-and-free-software.pdf') }}">Cooperatives and Free Software, Our
experience with Tryton</a>,
<em>Pablo Vannini</em>,
- <a
href="//videos.tryton.org/tub2013/CooperativesAndFreeSoftware_OurExperienceWithTryton.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/CooperativesAndFreeSoftware_OurExperienceWithTryton_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'CooperativesAndFreeSoftware_OurExperienceWithTryton.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'CooperativesAndFreeSoftware_OurExperienceWithTryton_small.html') }}">small
size</a>)
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUB2013/pos.pdf">Point of
Sale</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'pos.pdf') }}">Point of
Sale</a>,
<em>Jordi Esteve</em>,
- <a
href="//videos.tryton.org/tub2013/TrytonPointOfSale.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonPointOfSale_small.html">small size</a>)
+ <a href="{{ url_for_videos('tub2013', 'TrytonPointOfSale.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'TrytonPointOfSale_small.html') }}">small size</a>)
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUB2013/proteus.pdf">A newbie
introduction to proteus</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'proteus.pdf') }}">A
newbie introduction to proteus</a>,
<em>Nicolas Évrard</em>,
- <a
href="//videos.tryton.org/tub2013/aNewbieIntroductionToProteus.html">Video</a>
+ <a href="{{ url_for_videos('tub2013',
'aNewbieIntroductionToProteus.html') }}">Video</a>
(<a
href="//videos.tryton.org/tub2013/aNewbieIntroductionToProteus_small.html">small
size</a>)
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2013/tryton-and-insurance.odp">Tryton and
Insurance</a>,
+ <a href="{{ url_for_downloads('TUB2013',
'tryton-and-insurance.odp') }}">Tryton and Insurance</a>,
<em>Jean Cavallo</em>,
- <a
href="//videos.tryton.org/tub2013/TrytonAndInsuranceCoopengo.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonAndInsuranceCoopengo_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'TrytonAndInsuranceCoopengo.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'TrytonAndInsuranceCoopengo_small.html') }}">small size</a>)
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2013/tryton-from-user-perspective.odp">Tryton
from a User-Perspective</a>,
+ <a href="{{ url_for_downloads('TUB2013',
'tryton-from-user-perspective.odp') }}">Tryton from a User-Perspective</a>,
<em>Axel Braun</em>,
- <a
href="//videos.tryton.org/tub2013/TrytonFromAUserPerspective.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonFromAUserPerspective_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'TrytonFromAUserPerspective.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'TrytonFromAUserPerspective_small.html') }}">small size</a>)
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUB2013/tryton-user-doc.pdf">Tryton User
Documentation</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'tryton-user-doc.pdf')
}}">Tryton User Documentation</a>,
<em>Guillem Barba Domingo</em>,
- <a
href="//videos.tryton.org/tub2013/TrytonUserDocumentation.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonUserDocumentation_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'TrytonUserDocumentation.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'TrytonUserDocumentation_small.html') }}">small size</a>)
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUB2013/gnu-health.pdf">GNU
Health: Current status and next steps</a>,
+ <a href="{{ url_for_downloads('TUB2013', 'gnu-health.pdf') }}">GNU
Health: Current status and next steps</a>,
<em>Luis Falcón</em>,
- <a
href="//videos.tryton.org/tub2013/GNUHealth_CurrentStatus_NextSteps.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/GNUHealth_CurrentStatus_NextSteps_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'GNUHealth_CurrentStatus_NextSteps.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'GNUHealth_CurrentStatus_NextSteps_small.html') }}">small size</a>)
</li>
<li>
Business Intelligence: Presentation of BABI,
<em>Albert Cervera i Areny</em>,
- <a href="//videos.tryton.org/tub2013/BABI.html">Video</a>
- (<a href="//videos.tryton.org/tub2013/BABI_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013', 'BABI.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013', 'BABI_small.html')
}}">small size</a>)
</li>
<li>
Showcase Of SAO,
<em>Cédric Krier</em>,
- <a href="//videos.tryton.org/tub2013/ShowcaseOfSAO.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/ShowcaseOfSAO_small.html">small size</a>)
+ <a href="{{ url_for_videos('tub2013', 'ShowcaseOfSAO.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013', 'ShowcaseOfSAO_small.html')
}}">small size</a>)
</li>
<li>
SAO patch from NaN,
<em>Guillem Barba Domingo</em>,
- <a href="//videos.tryton.org/tub2013/SAO_NaN.html">Video</a>
- (<a href="//videos.tryton.org/tub2013/SAO_NaN_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013', 'SAO_NaN.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013', 'SAO_NaN_small.html')
}}">small size</a>)
</li>
<li>
Roundtable About The Future Development,
- <a
href="//videos.tryton.org/tub2013/merged/9_RoundtableAboutTheFutureDevelopment.ogg">Audio</a>
+ <a href="{{ url_for_videos('tub2013', 'merged',
'9_RoundtableAboutTheFutureDevelopment.ogg') }}">Audio</a>
</li>
<li>
iOS client,
<em>Sharoon Thomas</em>,
- <a href="//videos.tryton.org/tub2013/iOS_client.html">Video</a>
- (<a href="//videos.tryton.org/tub2013/iOS_client_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013', 'iOS_client.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013', 'iOS_client_small.html')
}}">small size</a>)
</li>
<li>
Nereid Workshop,
<em>Sharoon Thomas</em>,
- <a href="//videos.tryton.org/tub2013/NereidWorkshop.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/NereidWorkshop_small.html">small size</a>)
+ <a href="{{ url_for_videos('tub2013', 'NereidWorkshop.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'NereidWorkshop_small.html') }}">small size</a>)
</li>
<li>
Working In Distributed Environments, Synchronizing Instances And
Models,
<em>Sebastián Marró</em>,
- <a
href="//videos.tryton.org/tub2013/WorkingInDistributedEnvironments_SynchronizingInstancesAndModels.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/WorkingInDistributedEnvironments_SynchronizingInstancesAndModels_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'WorkingInDistributedEnvironments_SynchronizingInstancesAndModels.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'WorkingInDistributedEnvironments_SynchronizingInstancesAndModels_small.html')
}}">small size</a>)
</li>
<li>
Tryton Private Foundation Treasury,
- <a
href="//videos.tryton.org/tub2013/TrytonPrivateFoundationTreasury.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonPrivateFoundationTreasury_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'TrytonPrivateFoundationTreasury.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'TrytonPrivateFoundationTreasury_small.html') }}">small size</a>)
</li>
<li>
Workshop summaries: BABI,
<em>Albert Cervera i Areny</em>,
- <a
href="//videos.tryton.org/tub2013/WorkshopSummaryBABI.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/WorkshopSummaryBABI_small.html">small
size</a>)</li>
+ <a href="{{ url_for_videos('tub2013', 'WorkshopSummaryBABI.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'WorkshopSummaryBABI_small.html') }}">small size</a>)</li>
<li>
Workshop summaries: Tryton Documentation,
<em>Sharoon Thomas</em>,
- <a
href="//videos.tryton.org/tub2013/WorkshopSummaryTrytonDocumentation.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/WorkshopSummaryTrytonDocumentation_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013',
'WorkshopSummaryTrytonDocumentation.html') }}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'WorkshopSummaryTrytonDocumentation_small.html') }}">small size</a>)
</li>
<li>
Tryton Magento,
- <a href="//videos.tryton.org/tub2013/TrytonMagento.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/TrytonMagento_small.html">small size</a>)
+ <a href="{{ url_for_videos('tub2013', 'TrytonMagento.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013', 'TrytonMagento_small.html')
}}">small size</a>)
</li>
<li>
Nereid Extra Features,
<em>Sharoon Thomas</em>,
- <a
href="//videos.tryton.org/tub2013/NereidExtraFeatures.html">Video</a>
- (<a
href="//videos.tryton.org/tub2013/NereidExtraFeatures_small.html">small
size</a>)
+ <a href="{{ url_for_videos('tub2013', 'NereidExtraFeatures.html')
}}">Video</a>
+ (<a href="{{ url_for_videos('tub2013',
'NereidExtraFeatures_small.html') }}">small size</a>)
</li>
</ul>
</section>
@@ -664,27 +664,27 @@
<h2 id="TUL2012">TUL2012</h2>
<ul>
<li>
- <a href="//downloads-cdn.tryton.org/TUL2012/what_s_new/">What's
new?</a>,
+ <a href="{{ url_for_downloads('TUL2012', 'what_s_new') }}">What's
new?</a>,
<em>Cédric Krier</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2012/domains_states_safe_eval/">Domains,
states and safe-eval</a>,
+ <a href="{{ url_for_downloads('TUL2012',
'domains_states_safe_eval') }}">Domains, states and safe-eval</a>,
<em>Bertrand Chenal</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2012/GNU_Health_status.pdf">GNU Health
status</a>,
+ <a href="{{ url_for_downloads('TUL2012', 'GNU_Health_status.pdf')
}}">GNU Health status</a>,
<em>Sebastián Marró</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2012/python3/python3.html">Python3 port:
why and how far are we?</a>,
+ <a href="{{ url_for_downloads('TUL2012', 'python3',
'python3.html') }}">Python3 port: why and how far are we?</a>,
<em>Nicolas Évrard</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2012/GSoC%20-%20Calendar%20View.pdf">GSoC -
calendar view for Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2012', 'GSoC - Calendar
View.pdf') }}">GSoC - calendar view for Tryton</a>,
<em>Antoine Smolders</em>
</li>
<li>
- <a href="//downloads-cdn.tryton.org/TUL2012/what_next/">What
next?</a>,
+ <a href="{{ url_for_downloads('TUL2012', 'what_next') }}">What
next?</a>,
<em>Cédric Krier</em>
</li>
</ul>
@@ -693,15 +693,15 @@
<h2 id="TUL2011">TUL2011</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2011/Tryton_vs_OpenERP/">Tryton vs
OpenERP</a>,
+ <a href="{{ url_for_downloads('TUL2011', 'Tryton_vs_OpenERP')
}}">Tryton vs OpenERP</a>,
<em>Cédric Krier</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2011/GNUHealth/text0.html">GNU Health over
Tryton</a>,
+ <a href="{{ url_for_downloads('TUL2011', 'GNUHealth/text0.html')
}}">GNU Health over Tryton</a>,
<em>Sebastián Marró</em>
</li>
<li>
- <a
href="//downloads-cdn.tryton.org/TUL2011/mercurial.pdf">Mercurial
Introduction</a>,
+ <a href="{{ url_for_downloads('TUL2011', 'mercurial.pdf')
}}">Mercurial Introduction</a>,
<em>Nicolas Évrard</em>
</li>
</ul>
@@ -710,7 +710,7 @@
<h2 id="PyConFr2010">PyCONFR 2010</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/PyCONFR2010/slides.pdf">Tryton</a>,
+ <a href="{{ url_for_downloads('PyCONFR2010', 'slides.pdf')
}}">Tryton</a>,
<em>Cédric Krier & Bertrand Chenal</em>
</li>
</ul>
@@ -719,7 +719,7 @@
<h2 id="EUROPYTHON2010">EUROPYTHON 2010</h2>
<ul>
<li>
- <a
href="//downloads-cdn.tryton.org/europython2010/presentation.tar.gz">What is
Tryton?</a>,
+ <a href="{{ url_for_downloads('europython2010',
'presentation.tar.gz') }}">What is Tryton?</a>,
<em>Sharoon Thomas</em>
</li>
</ul>