Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ebb698c54 | ||
|
|
3621289fee | ||
|
|
544db390ef | ||
|
|
f357d716b7 | ||
|
|
a49bee1a52 | ||
|
|
286bfd14ea | ||
|
|
068288ddd1 | ||
|
|
30d4c85250 | ||
|
|
6170e5f499 | ||
|
|
b1d56d85c0 | ||
|
|
3c76533541 | ||
|
|
076c03d6c6 | ||
|
|
4f1b4d90a6 | ||
|
|
10f916f262 | ||
|
|
744581bad9 | ||
|
|
b80fe490dc | ||
|
|
179e35a88b | ||
|
|
28b825db07 | ||
|
|
d8c72cf249 | ||
|
|
c4250cc201 | ||
|
|
f54f78b03e | ||
|
|
97a9c1c4e3 | ||
|
|
6ca6e89cd5 | ||
|
|
f5d09537b9 | ||
|
|
a5c34cc6a0 | ||
|
|
5c9fe38c4b | ||
|
|
feff65ab36 | ||
|
|
c8a354e868 | ||
|
|
ccd46e79fc | ||
|
|
6c6eec0b78 | ||
|
|
7662ce8771 | ||
|
|
8c8e9352d3 | ||
|
|
6e28c2a5db | ||
|
|
33d97a2f93 | ||
|
|
5f6c97d146 | ||
|
|
e9a7ccad4a | ||
|
|
93f3d362a4 | ||
|
|
1b84212da5 | ||
|
|
b646670848 | ||
|
|
9f43fded15 | ||
|
|
1537bcd54b | ||
|
|
31caa5e6b3 | ||
|
|
407405389d | ||
|
|
a2b9bf3e54 | ||
|
|
c3eb0a1a80 | ||
|
|
4c8941a829 |
+2
-1
@@ -1,8 +1,8 @@
|
||||
*.n
|
||||
*.php
|
||||
config.xml
|
||||
/package-lock.json
|
||||
www/plugin/*
|
||||
Makefile
|
||||
tmp/*
|
||||
*node_modules*
|
||||
*.map
|
||||
@@ -33,5 +33,6 @@ www/js/libs.js
|
||||
|
||||
www/css/.sass-cache
|
||||
www/css/*.css
|
||||
!www/css/bootstrap.min.css
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1.6.0
|
||||
@@ -6,8 +6,11 @@ ENV?="dev"
|
||||
#To compile project with plugins, add PLUGINS=1 or type `export PLUGINS=1`
|
||||
|
||||
install:
|
||||
#copy config file from template
|
||||
cp config.xml.dist config.xml
|
||||
#copy config file from template first time only
|
||||
@if [ ! -f config.xml ]; then \
|
||||
cp config.xml.dist config.xml; \
|
||||
fi
|
||||
|
||||
@if [ $(ENV) = "dev" ]; then \
|
||||
make install_dev; \
|
||||
fi
|
||||
@@ -15,7 +18,7 @@ install:
|
||||
#setup dev environnement from source
|
||||
install_dev:
|
||||
#set config file to debug=1
|
||||
@sed -e 's?debug=.*?debug="1"?g' --in-place config.xml
|
||||
#@sed -e 's?debug=.*?debug="1"?g' --in-place config.xml
|
||||
#install haxe dependencies in .haxelib
|
||||
haxelib newrepo
|
||||
haxelib -always install cagette.hxml
|
||||
@@ -37,6 +40,7 @@ install_dev:
|
||||
@make css
|
||||
@make compile
|
||||
@make frontend
|
||||
@make templates
|
||||
@echo "Well, it looks like everything is fine : librairies are installed, backend and frontend has been compiled !"
|
||||
|
||||
|
||||
@@ -46,7 +50,7 @@ compile:
|
||||
echo "compile Cagette.net with plugins"; \
|
||||
haxe cagetteAllPlugins.hxml; \
|
||||
else \
|
||||
echo "compile Cagette.net core"; \
|
||||
echo "compile CagettePéi core"; \
|
||||
haxe cagette.hxml; \
|
||||
fi
|
||||
|
||||
@@ -62,6 +66,8 @@ frontend:
|
||||
else \
|
||||
haxe cagetteJs.hxml; \
|
||||
fi
|
||||
mkdir -p tmp
|
||||
chown www-data:www-data tmp
|
||||
|
||||
#update POT file from source
|
||||
i18n:
|
||||
@@ -69,13 +75,15 @@ i18n:
|
||||
|
||||
#compile templates in each language, required for production env.
|
||||
templates:
|
||||
mkdir -p lang/master/tmp
|
||||
haxe cagette.hxml -D i18n_generation
|
||||
@make LANG=fr ctemplates
|
||||
@make LANG=en ctemplates
|
||||
@make LANG=de ctemplates
|
||||
msgfmt www/lang/texts_fr.po -o www/lang/texts_fr.mo
|
||||
chown www-data:www-data -R www
|
||||
|
||||
ctemplates:
|
||||
(cd lang/$(LANG)/tpl; temploc2 -macros macros.mtt -output ../tmp/ *.mtt */*.mtt */*/*.mtt */*/*/*.mtt */*/*/*/*.mtt)
|
||||
# (cd lang/$(LANG)/tpl; temploc2 -macros macros.mtt -output ../tmp/ *.mtt */*.mtt */*/*.mtt */*/*/*.mtt */*/*/*/*.mtt)
|
||||
(cd lang/$(LANG)/tpl; temploc2 -macros macros.mtt -output ../tmp/ *.mtt */*.mtt */*/*.mtt)
|
||||
|
||||
#Compile and run unit tests
|
||||
tests:
|
||||
@@ -1,17 +1,170 @@
|
||||
# Cagette.net
|
||||
Le logiciel libre des circuits courts.
|
||||
CAGETTE PEI
|
||||
===========
|
||||
|
||||
[](https://travis-ci.org/bablukid/cagette)
|
||||
Fourche du logiciel [Cagette.net](https://github.com/CagetteNet) à partir de la version 0.9.2 Novembre 2018
|
||||
|
||||
http://www.cagette.net
|
||||
Certaines portions du code source de Cagette.net n'étant plus disponibles en téléchargement,
|
||||
j'ai repris sur la base d'un existant pour adapter au marché local réunionnais et leurs AMAPéi.
|
||||
|
||||
Documentation : http://www.cagette.net/wiki
|
||||
## INSTALL FROM SCRATCH (debian-buster)
|
||||
|
||||
English :
|
||||
* apt install -y curl
|
||||
* curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
||||
* apt install -y nodejs=8.17.0-1nodesource1
|
||||
* apt install -y sudo haxe apache2 make git imagemagick gettext libapache2-mod-neko mariadb-server
|
||||
* mysql -u root <<EOF
|
||||
CREATE DATABASE cagettepei;
|
||||
GRANT ALL ON cagettepei.* TO 'cagettepei'@'%' IDENTIFIED BY 'cagettepei';
|
||||
EOF
|
||||
* cd /var/www
|
||||
* git clone https://git.artcode.re/cagetters/cagettepei.git
|
||||
* cd cagettepei
|
||||
* make install ENV=dev # first time
|
||||
* make compile # classes
|
||||
* make templates # templates + i18n
|
||||
* vim /etc/apache2/sites-available/cagettepei.conf
|
||||
```
|
||||
<VirtualHost *:80>
|
||||
ServerName cagettepei
|
||||
DirectoryIndex index.n
|
||||
DocumentRoot /var/www/cagettepei/www/
|
||||
</VirtualHost>
|
||||
```
|
||||
* sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
|
||||
* a2dissite 000-default.conf
|
||||
* a2ensite cagettepei.conf
|
||||
* a2enmod neko rewrite
|
||||
* systemctl restart apache2
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
* cd /var/www/cagettepei
|
||||
* vim config.xml
|
||||
```
|
||||
<config
|
||||
host="<DOMAIN.TLD>"
|
||||
key="<SECRET_PHRASE>"
|
||||
name = "CagettePéi"
|
||||
default_email = "<EMAIL>"
|
||||
webmaster_email = "<EMAIL>"
|
||||
database="mysql://cagettepei:cagettepei@localhost/cagettepei"
|
||||
|
||||
smtp_host="localhost"
|
||||
smtp_port="25"
|
||||
smtp_user=""
|
||||
smtp_pass=""
|
||||
|
||||
lang="fr"
|
||||
langs="fr"
|
||||
langnames="Français"
|
||||
maintain="0"
|
||||
debug="0"
|
||||
sqllog="0"
|
||||
cache="1"
|
||||
cachetpl="0"
|
||||
/>
|
||||
```
|
||||
|
||||
ADMIN RESET PASSWORD
|
||||
--------------------
|
||||
|
||||
* # go to http://localhost for ERROR + table regeneration, then
|
||||
* cd /var/www/cagettepei
|
||||
* SECRET=$(grep key= config.xml | cut -d= -f2 | cut -d'"' -f2)
|
||||
* echo "insert into User values (1,'fr',MD5('${SECRET}cagettepei'),1,'Administrateur','Cagette Péi', 'admin', null, null, null, null, null, null, null, null, null, now(), now(),6,null, null)" | mysql -h localhost -u cagettepei -pcagettepei cagettepei
|
||||
* # connect with admin / cagettepei
|
||||
|
||||
|
||||
* # change admin password
|
||||
* echo "update User set pass=MD5('${SECRET}cagettepei') where id=1" | mysql -h localhost -u cagettepei -pcagettepei cagettepei
|
||||
|
||||
|
||||
SYSTEMD-TIMERS
|
||||
--------------
|
||||
|
||||
* vim /var/www/cagettepei-batch
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
case $1 in
|
||||
minute);;
|
||||
daily);;
|
||||
*) echo "expected [minute|daily]" && exit 1;;
|
||||
esac
|
||||
|
||||
SELECTOR=$1
|
||||
|
||||
for i in /var/www/cagettepei-* ; do
|
||||
if [[ -d $i ]]; then
|
||||
cd $i/www
|
||||
echo "cron-$SELECTOR in: $i"
|
||||
neko index.n cron/$SELECTOR
|
||||
echo
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
* chmod +x /var/www/cagettepei-batch
|
||||
* vim /etc/systemd/system/cagettepei-batch-minute.service
|
||||
```
|
||||
[Unit]
|
||||
Description=Run batch cagettepei every minute
|
||||
|
||||
[Service]
|
||||
User=www-data
|
||||
SyslogIdentifier=cagettepei
|
||||
ExecStart=/var/www/cagettepei-batch minute
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
* vim /etc/systemd/system/cagettepei-batch-day.service
|
||||
```
|
||||
[Unit]
|
||||
Description=Run batch cagettepei every day
|
||||
|
||||
[Service]
|
||||
User=www-data
|
||||
SyslogIdentifier=cagettepei
|
||||
ExecStart=/var/www/cagettepei-batch daily
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
* vim /etc/systemd/system/cagettepei-batch-minute.timer
|
||||
```
|
||||
[Unit]
|
||||
Description=Timer for batch cagettepei every minute
|
||||
Requires=apache2.service
|
||||
|
||||
[Timer]
|
||||
OnCalendar=minutely
|
||||
Unit=cagettepei-batch-minute.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
* vim /etc/systemd/system/cagettepei-batch-day.timer
|
||||
```
|
||||
[Unit]
|
||||
Description=Timer for batch cagettepei every day
|
||||
Requires=apache2.service
|
||||
|
||||
[Timer]
|
||||
OnCalendar=daily
|
||||
Unit=cagettepei-batch-day.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
* systemctl daemon-reload
|
||||
* systemctl edit apache2 # bind the 2 timers to apache2 cagette
|
||||
```
|
||||
[Unit]
|
||||
BindsTo = cagettepei-batch-minute.timer cagettepei-batch-day.timer
|
||||
```
|
||||
* systemctl enable cagettepei-batch-minute.timer cagettepei-batch-day.timer
|
||||
* systemctl start cagettepei-batch-minute.timer cagettepei-batch-day.timer
|
||||
|
||||
Cagette.net is an open source web app to help people build a better and sustainable food system.
|
||||
Some people call it a "foodhub" : A mix between a groupware and a marketplace, helping consumers to order food from local farmers and producers.
|
||||
|
||||
## Build & install
|
||||
|
||||
Read the Developer page on the wiki to know more about this : http://wiki.cagette.net/dev:index
|
||||
|
||||
+24
-7
@@ -1,16 +1,33 @@
|
||||
-lib templo:3.0.0
|
||||
-lib hxevents:0.4.0
|
||||
-lib thx.semver:0.2.2
|
||||
-lib thx.csv:0.2.0
|
||||
# LOCKED LIBS
|
||||
-lib asys:0.3.0
|
||||
-lib datetime:3.1.1
|
||||
-lib history:0.0.1
|
||||
-lib hscript:2.3.0
|
||||
-lib hxevents:0.4.0
|
||||
-lib mime:0.1.2
|
||||
-lib modular:0.10.15
|
||||
-lib smtpmailer:0.4.0
|
||||
-lib templo:3.0.0
|
||||
-lib thx.core:0.43.0
|
||||
-lib thx.csv:0.2.0
|
||||
-lib thx.semver:0.2.2
|
||||
-lib tink_await:0.6.0
|
||||
-lib tink_chunk:0.3.1
|
||||
-lib tink_core:1.18.0
|
||||
-lib tink_io:0.5.0
|
||||
-lib tink_json:0.9.0
|
||||
-lib tink_macro:0.21.1
|
||||
-lib tink_priority:0.1.4
|
||||
-lib tink_streams:0.2.1
|
||||
-lib tink_syntaxhub:0.4.3
|
||||
-lib tink_typecrawler:0.7.0
|
||||
|
||||
-lib sugoi:git:git@artcode.re:cagetters/sugoi.git
|
||||
-lib record-macros:git:git@artcode.re:cagetters/record-macros.git
|
||||
-lib dbadmin:git:git@artcode.re:cagetters/dbadmin.git
|
||||
## GIT
|
||||
-lib sugoi:git:https://git.artcode.re/cagetters/sugoi.git
|
||||
-lib record-macros:git:https://git.artcode.re/cagetters/record-macros.git
|
||||
-lib dbadmin:git:https://git.artcode.re/cagetters/dbadmin.git
|
||||
|
||||
## SCRIPT
|
||||
-cp common
|
||||
-cp src
|
||||
-cp lang/master/tpl
|
||||
|
||||
+7
-2
@@ -1,12 +1,17 @@
|
||||
-dce no
|
||||
-cp common
|
||||
-cp js
|
||||
-lib sugoi:git:git@artcode.re:cagetters/sugoi.git
|
||||
-lib hxleaflet:git:git@artcode.re:cagetters/hxleaflet.git
|
||||
-lib sugoi:git:https://git.artcode.re/cagetters/sugoi.git
|
||||
-lib hxleaflet:git:https://git.artcode.re/cagetters/hxleaflet.git
|
||||
-lib react:1.4.0
|
||||
-lib react-router-4:0.2.3
|
||||
-lib modular:0.10.15
|
||||
-lib tink_json:0.9.0
|
||||
-lib tink_core:1.18.0
|
||||
-lib tink_io:0.5.0
|
||||
-lib tink_streams:0.2.1
|
||||
-lib thx.core:0.43.0
|
||||
-lib asys:0.3.0
|
||||
-main App
|
||||
-debug
|
||||
-js www/js/app.js
|
||||
|
||||
+14
-24
@@ -1,29 +1,19 @@
|
||||
<config
|
||||
|
||||
database = "mysql://<USER>:<PASSWORD>@<HOST>/<DBNAME>"
|
||||
host = "<URL without http>"
|
||||
name = "<HTML head title>"
|
||||
default_email = "<EMAIL>"
|
||||
webmaster_email = "<EMAIL>"
|
||||
key = "<SECRET_PHRASE>"
|
||||
|
||||
maintain="0"
|
||||
cache="1"
|
||||
cachetpl="0"
|
||||
debug="0"
|
||||
sqllog="0"
|
||||
|
||||
lang="fr"
|
||||
langs="fr"
|
||||
langnames="Français"
|
||||
|
||||
host="www.amapeisudreunion.com"
|
||||
name = "AMAPEI Sud Réunion"
|
||||
default_email = "admin@amapeisudreunion.com"
|
||||
webmaster_email = "postmaster@amapeisudreunion.com"
|
||||
|
||||
database="mysql://cagette:cagette@ct1/cagette"
|
||||
sqllog="0"
|
||||
|
||||
debug="0"
|
||||
cache="1"
|
||||
maintain="0"
|
||||
cachetpl="0"
|
||||
key="carotteMagique"
|
||||
|
||||
smtp_host="localhost"
|
||||
smtp_port="25"
|
||||
smtp_user=""
|
||||
smtp_pass=""
|
||||
|
||||
mt.net.form.Form.HTML5 = "1"
|
||||
mt.net.form.Form.USE_TWITTER_BOOTSTRAP = "1"
|
||||
|
||||
google_geocoding_key="googlekey"
|
||||
/>
|
||||
|
||||
+9
-3
@@ -164,7 +164,13 @@ class ShopCart
|
||||
var groups = new Map<Int,{name:String,products:Array<ProductInfo>}>();
|
||||
var pinned = new Map<Int,{name:String,products:Array<ProductInfo>}>();
|
||||
|
||||
var firstCategGroup = this.categories[0].categs;
|
||||
|
||||
trace(this.categories);
|
||||
var firstCategGroup = null;
|
||||
if (this.categories.length > 0){
|
||||
firstCategGroup = this.categories[0].categs;
|
||||
}
|
||||
|
||||
|
||||
//trace(firstCategGroup);
|
||||
//trace(pinnedCategories);
|
||||
@@ -181,7 +187,7 @@ class ShopCart
|
||||
|
||||
for ( categ in p.categories){
|
||||
|
||||
if (Lambda.find(firstCategGroup, function(c) return c.id == categ) != null){
|
||||
if (firstCategGroup != null && Lambda.find(firstCategGroup, function(c) return c.id == categ) != null){
|
||||
|
||||
//is in this category group
|
||||
var g = groups.get(categ);
|
||||
@@ -442,4 +448,4 @@ class ShopCart
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
This is where the compiled templates are.
|
||||
@@ -1 +0,0 @@
|
||||
This is where the compiled templates are.
|
||||
@@ -1 +0,0 @@
|
||||
This is where the compiled templates are.
|
||||
@@ -112,17 +112,6 @@
|
||||
|
||||
})
|
||||
|
||||
//tracking 24x7
|
||||
var rumMOKey='1d36c37d438ba069db210c73cb74308d';
|
||||
(function(){
|
||||
if(window.performance && window.performance.timing && window.performance.navigation) {
|
||||
var site24x7_rum_beacon=document.createElement('script');
|
||||
site24x7_rum_beacon.async=true;
|
||||
site24x7_rum_beacon.setAttribute('src','//static.site24x7rum.com/beacon/site24x7rum-min.js?appKey='+rumMOKey);
|
||||
document.getElementsByTagName('head')[0].appendChild(site24x7_rum_beacon);
|
||||
}
|
||||
})(window)
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<h1>::groupName::</h1>
|
||||
::else::
|
||||
<div style="margin-bottom:22px;" >
|
||||
<a href="http://www.cagette.net" target="_blank">
|
||||
<a href="https://git.artcode.re/cagetters/cagette" target="_blank">
|
||||
<img src="/img/logo3.png" alt="::NAME::" />
|
||||
</a>
|
||||
</div>
|
||||
@@ -130,7 +130,7 @@
|
||||
<div class="row" id="footer">
|
||||
|
||||
<div class="col-md-9" >
|
||||
<a href="http://www.cagette.net" target="_blank">
|
||||
<a href="https://git.artcode.re/cagetters/cagette" target="_blank">
|
||||
<img src="/img/logo.png" alt="::_("Cagette.net")::"/>
|
||||
</a>
|
||||
</div>
|
||||
@@ -142,13 +142,11 @@
|
||||
<a href="http://www.cagette.net/wiki" target="_blank">::_("Documentation")::</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.cagette.pro" target="_blank">Formations pour producteurs</a>
|
||||
<a href="https://pad1.zourit.net/p/4a3b09afd25b4fdcb3f0a9598db21e61" target="_blank">Proposer une amélioration</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
::if (user!=null && user.isAmapManager()):: <a href="https://cagette.uservoice.com" target="_blank">::_("Propose features")::</a> ::end::
|
||||
<a href="https://pad1.zourit.net/p/4a3b09afd25b4fdcb3f0a9598db21e61" target="_blank">Soumettre une anomalie</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<!--<p style="position: absolute;display: block;top: 96px;width: 700px;">
|
||||
@@ -201,7 +199,7 @@
|
||||
<!--
|
||||
::raw _("Cagette.net is made by <a href='https://www.alilo.fr' target='_blank'><img src='/img/alilo-trans-black.png' /></a>")::<br/>
|
||||
-->
|
||||
<span>version ::VERSION::-::getPlatform()::</span>
|
||||
<span>version ::VERSION::</span>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
@@ -17,11 +17,11 @@ table.table td{
|
||||
<hr/>
|
||||
|
||||
<div style="color:#666;font-size:12px;">
|
||||
::_("This e-mail was sent from"):: <a href="http://::HOST::">::_("Cagette.net")::</a>.
|
||||
> ::_("This e-mail was sent from"):: <a href="http://::raw HOST::">::_("Cagette.net")::</a>.
|
||||
|
||||
::if group!=null::
|
||||
<br/>
|
||||
::_("You receive this message because you are part of"):: <b>::group.name::</b>
|
||||
::_("You receive this message because you are part of"):: <b>::_("Cagette.net")::</b>
|
||||
::end::
|
||||
|
||||
::if list!=null::
|
||||
@@ -32,9 +32,9 @@ table.table td{
|
||||
::if group!=null::
|
||||
<div style="width:50%;max-width:300px;margin: 12px auto;padding: 8px;text-decoration: none;background: #070;border-radius: 3px;text-align: center;">
|
||||
<a href="http://::HOST::/group/::group.id::" style="color: white;font-weight: bold;text-decoration: none;font-size:1.2em;">
|
||||
→ ::group.name::
|
||||
→ ::_("Cagette.net")::
|
||||
</a>
|
||||
</div>
|
||||
::end::
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<div style="max-width:400px;margin:auto;border:solid 1px #AAA;border-radius:8px;padding:12px;text-align:center;font-family:Arial;">
|
||||
|
||||
<img src="http://::HOST::/img/logo2.png" title="Cagette.net" />
|
||||
<img src="http://::HOST::/img/logo2.png" title="CagettePéi" />
|
||||
|
||||
<p>
|
||||
::_("Hello"):: $$nullSafe(::name::),
|
||||
@@ -42,4 +42,4 @@
|
||||
</div>
|
||||
|
||||
|
||||
::end::
|
||||
::end::
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
|
||||
|
||||
|
||||
::end::
|
||||
::end::
|
||||
|
||||
+4
-5
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"name": "Cagette.net",
|
||||
"name": "CagettePei",
|
||||
"description": "le logiciel libre du circuit court",
|
||||
"author": "François Barbut <francois@alilo.fr>",
|
||||
"license": "GPL-2.0",
|
||||
"homepage": "http://www.cagette.net",
|
||||
"license": "AGPL-3.0",
|
||||
"dependencies": {
|
||||
"bootstrap": "^3.3.4",
|
||||
"eonasdan-bootstrap-datetimepicker": "^4.7.14",
|
||||
@@ -48,5 +46,6 @@
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/bablukid/cagette/issues"
|
||||
}
|
||||
},
|
||||
"version": "1.6.0"
|
||||
}
|
||||
|
||||
+2
-1
@@ -16,7 +16,8 @@ class App extends sugoi.BaseApp {
|
||||
* @doc https://github.com/fponticelli/thx.semver
|
||||
*/
|
||||
//public static var VERSION = ([0,9,2] : Version).withPre("july");
|
||||
public static var VERSION = ([0,9,2] : Version).withPre(MyMacros.getGitShortSHA(), MyMacros.getGitCommitDate());
|
||||
//public static var VERSION = ([0,9,2] : Version).withPre(MyMacros.getGitShortSHA(), MyMacros.getGitCommitDate());
|
||||
public static var VERSION = "cagette-péi " + MyMacros.getGitCommitDate();
|
||||
|
||||
public function new(){
|
||||
super();
|
||||
|
||||
+2
-1
@@ -20,7 +20,8 @@ class MyMacros {
|
||||
commitDate = StringTools.replace(commitDate, " ", ".");
|
||||
commitDate = StringTools.replace(commitDate, "-", ".");
|
||||
commitDate = StringTools.replace(commitDate, ":", ".");
|
||||
commitDate = commitDate.substr(0,16);
|
||||
//commitDate = commitDate.substr(0,16);
|
||||
commitDate = commitDate.substr(0,10);
|
||||
|
||||
// Generates a string expression
|
||||
return macro $v{commitDate};
|
||||
|
||||
@@ -86,6 +86,17 @@ class Distribution extends Controller
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getUser(uid:Int):db.User {
|
||||
return db.User.manager.get(uid, false);
|
||||
}
|
||||
|
||||
function getBasket(userId, placeId, date){
|
||||
var user = getUser(userId);
|
||||
var place = db.Place.manager.get(placeId, false);
|
||||
return db.Basket.getOrCreate(user, place, date);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Attendance sheet to print ( mutidistrib )
|
||||
@@ -174,18 +185,25 @@ class Distribution extends Controller
|
||||
var data = new Array<Dynamic>();
|
||||
|
||||
for (o in orders3) {
|
||||
|
||||
|
||||
var basket = getBasket(o.userId,view.place.id,view.date);
|
||||
|
||||
data.push( {
|
||||
"name":o.userName,
|
||||
"productName":o.productName,
|
||||
"price":view.formatNum(o.productPrice),
|
||||
"quantity":o.quantity,
|
||||
"fees":view.formatNum(o.fees),
|
||||
"total":view.formatNum(o.total),
|
||||
"paid":o.paid
|
||||
"NUM": basket.num,
|
||||
"ADHERENT":o.userName,
|
||||
"PRODUIT":o.productName,
|
||||
"QTÉ":o.quantity,
|
||||
// "price":view.formatNum(o.productPrice),
|
||||
// "fees":view.formatNum(o.fees),
|
||||
// "total":view.formatNum(o.total),
|
||||
// "paid":o.paid
|
||||
});
|
||||
}
|
||||
|
||||
sugoi.tools.Csv.printCsvDataFromObjects(data, ["name", "productName", "price", "quantity","fees","total", "paid"],"Export-commandes-"+date.toString().substr(0,10)+"-Cagette");
|
||||
sugoi.tools.Csv.printCsvDataFromObjects(data, ["NUM","ADHERENT", "PRODUIT", "QTÉ"],"Export-commandes-"+date.toString().substr(0,10)+"-Cagette");
|
||||
//sugoi.tools.Csv.printCsvDataFromObjects(data, ["NUM","ADHERENT", "PRODUIT", "QTÉ","price","fees","total","paid"],"Export-commandes-"+date.toString().substr(0,10)+"-Cagette");
|
||||
//sugoi.tools.Csv.printCsvDataFromObjects(data, ["NUM","ADHERENT", "PRODUIT", "price", "quantity","fees","total", "paid"],"Export-commandes-"+date.toString().substr(0,10)+"-Cagette");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+6
File diff suppressed because one or more lines are too long
Executable → Regular
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
+2817
-2816
File diff suppressed because it is too large
Load Diff
+23
-1141
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user