Compare commits
83 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a65234478c | |||
| 94af61e732 | |||
| f258cbecee | |||
| 2ccd7a86ec | |||
| 1790688357 | |||
| 30a0ac6a1b | |||
| 148e9e8629 | |||
| 95bbaf6a38 | |||
| 0372c50ef5 | |||
| 3ed69380f2 | |||
| 55aa94bbb9 | |||
| caf3010408 | |||
| f9c0c478df | |||
| c5ab91041d | |||
| ee3b63b792 | |||
| fc256343a7 | |||
| c59186fa64 | |||
| 091f13df43 | |||
| 621d9e6d83 | |||
| 42528987af | |||
| c258d10d15 | |||
| ca0b72d7b1 | |||
| eba2455298 | |||
| be81e69c2b | |||
| e3a981fc2c | |||
| 1a169b340e | |||
| 20416b4d1c | |||
| 76c5bad895 | |||
| 15daf70298 | |||
| 1c08c07a0f | |||
| b291239a41 | |||
| 6f12be7e20 | |||
| 89c441cdc8 | |||
| 0a9975809c | |||
| 14dee6b466 | |||
| 9d5a16351b | |||
| 7c1bb810fc | |||
| 8a9b2d687e | |||
| 0d04b8a511 | |||
| 2f35117282 | |||
| 563de284f7 | |||
| 8c29f8b12a | |||
| 2fbaced689 | |||
| 33335ec3e1 | |||
| 066d9c9ab5 | |||
| b96c54cef9 | |||
| 59700b8d06 | |||
| 455d188da8 | |||
| d13a003475 | |||
| a47deac038 | |||
| 5667149f8d | |||
| c9a42c4638 | |||
| 33fe831287 | |||
| f2dcc53a18 | |||
| 39b965be7b | |||
| e637b6b58a | |||
| 18da4fa7fd | |||
| 66d5faf78f | |||
| cfdee6e065 | |||
| 44b93929e2 | |||
| 8c090954fd | |||
| b4e22bf465 | |||
| 565415d4bf | |||
| 12e043c0a2 | |||
| 1a828bf630 | |||
| ce2ad2d15b | |||
| 78ab6de16b | |||
| 2e2639b12a | |||
| 83ca7f20b8 | |||
| eb07384c23 | |||
| 5bc1ab1367 | |||
| 1d81132159 | |||
| b29cdef7e2 | |||
| 986406ed80 | |||
| 396311714c | |||
| 8b84026206 | |||
| c4861879ea | |||
| 4a90c82ee4 | |||
| 4a16a1c377 | |||
| e276ac497d | |||
| 7e1e767d8f | |||
| 378405b6b6 | |||
| e821e5c7a6 |
@@ -1,5 +1,26 @@
|
|||||||
## 2.18.1-2.18.4
|
## 2.19.0
|
||||||
- pydal 19.02
|
- new command line options (Thanks Paolo Pastori)
|
||||||
|
|
||||||
|
OLD NAME NEW NAME
|
||||||
|
================== ==================
|
||||||
|
--debug --log_level
|
||||||
|
--nogui --no_gui
|
||||||
|
--ssl_private_key --server_key
|
||||||
|
--ssl_certificate --server_cert
|
||||||
|
--minthreads --min_threads
|
||||||
|
--maxthreads --max_threads
|
||||||
|
--profiler --profiler_dir
|
||||||
|
--run-cron --with_cron
|
||||||
|
--softcron --soft_cron
|
||||||
|
--cron --cron_run
|
||||||
|
--cronjob * --cron_job *
|
||||||
|
--test --run_doctests
|
||||||
|
--add_options
|
||||||
|
--interface
|
||||||
|
--crontab
|
||||||
|
|
||||||
|
## 2.18.1-2.18.5
|
||||||
|
- pydal 19.04
|
||||||
- made template its own module (Yet Another Template Language)
|
- made template its own module (Yet Another Template Language)
|
||||||
- improved python 3.4-3.7 support
|
- improved python 3.4-3.7 support
|
||||||
- better regular expressions
|
- better regular expressions
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ clean:
|
|||||||
find applications/welcome/ -name '.*' -exec rm -f {} \;
|
find applications/welcome/ -name '.*' -exec rm -f {} \;
|
||||||
find . -name '*.pyc' -exec rm -f {} \;
|
find . -name '*.pyc' -exec rm -f {} \;
|
||||||
tests:
|
tests:
|
||||||
python web2py.py --run_system_tests
|
python web2py.py --verbose --run_system_tests
|
||||||
coverage:
|
coverage:
|
||||||
coverage erase --rcfile=gluon/tests/coverage.ini
|
coverage erase --rcfile=gluon/tests/coverage.ini
|
||||||
export COVERAGE_PROCESS_START=gluon/tests/coverage.ini
|
export COVERAGE_PROCESS_START=gluon/tests/coverage.ini
|
||||||
python web2py.py --run_system_tests --with_coverage
|
python web2py.py --verbose --run_system_tests --with_coverage
|
||||||
coverage combine --rcfile=gluon/tests/coverage.ini
|
coverage combine --rcfile=gluon/tests/coverage.ini
|
||||||
sleep 1
|
sleep 1
|
||||||
coverage html --rcfile=gluon/tests/coverage.ini
|
coverage html --rcfile=gluon/tests/coverage.ini
|
||||||
@@ -45,7 +45,7 @@ rmfiles:
|
|||||||
rm -rf applications/examples/uploads/*
|
rm -rf applications/examples/uploads/*
|
||||||
src:
|
src:
|
||||||
### Use semantic versioning
|
### Use semantic versioning
|
||||||
echo 'Version 2.18.4-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
|
echo 'Version 2.18.5-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
|
||||||
### rm -f all junk files
|
### rm -f all junk files
|
||||||
make clean
|
make clean
|
||||||
# make rmfiles
|
# make rmfiles
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Version 2.18.4-stable+timestamp.2019.03.12.22.20.22
|
Version 2.18.5-stable+timestamp.2019.04.07.21.13.59
|
||||||
|
|||||||
@@ -166,9 +166,9 @@ def check_version():
|
|||||||
new_version, version = check_new_version(request.env.web2py_version,
|
new_version, version = check_new_version(request.env.web2py_version,
|
||||||
WEB2PY_VERSION_URL)
|
WEB2PY_VERSION_URL)
|
||||||
|
|
||||||
if new_version == -1:
|
if new_version in (-1, -2):
|
||||||
return A(T('Unable to check for upgrades'), _href=WEB2PY_URL)
|
return A(T('Unable to check for upgrades'), _href=WEB2PY_URL)
|
||||||
elif new_version != True:
|
elif not new_version:
|
||||||
return A(T('web2py is up to date'), _href=WEB2PY_URL)
|
return A(T('web2py is up to date'), _href=WEB2PY_URL)
|
||||||
elif platform.system().lower() in ('windows', 'win32', 'win64') and os.path.exists("web2py.exe"):
|
elif platform.system().lower() in ('windows', 'win32', 'win64') and os.path.exists("web2py.exe"):
|
||||||
return SPAN('You should upgrade to %s' % version.split('(')[0])
|
return SPAN('You should upgrade to %s' % version.split('(')[0])
|
||||||
@@ -814,8 +814,11 @@ def edit():
|
|||||||
|
|
||||||
if len(request.args) > 2 and request.args[1] == 'controllers':
|
if len(request.args) > 2 and request.args[1] == 'controllers':
|
||||||
controller = (request.args[2])[:-3]
|
controller = (request.args[2])[:-3]
|
||||||
functions = find_exposed_functions(data)
|
try:
|
||||||
functions = functions and sorted(functions) or []
|
functions = find_exposed_functions(data)
|
||||||
|
functions = functions and sorted(functions) or []
|
||||||
|
except SyntaxError as err:
|
||||||
|
functions = ['SyntaxError:Line:%d' % err.lineno]
|
||||||
else:
|
else:
|
||||||
(controller, functions) = (None, None)
|
(controller, functions) = (None, None)
|
||||||
|
|
||||||
@@ -1117,7 +1120,7 @@ def design():
|
|||||||
defines = {}
|
defines = {}
|
||||||
for m in models:
|
for m in models:
|
||||||
data = safe_read(apath('%s/models/%s' % (app, m), r=request))
|
data = safe_read(apath('%s/models/%s' % (app, m), r=request))
|
||||||
defines[m] = regex_tables.findall(data)
|
defines[m] = re.findall(REGEX_DEFINE_TABLE, data, re.MULTILINE)
|
||||||
defines[m].sort()
|
defines[m].sort()
|
||||||
|
|
||||||
# Get all controllers
|
# Get all controllers
|
||||||
@@ -1127,8 +1130,11 @@ def design():
|
|||||||
functions = {}
|
functions = {}
|
||||||
for c in controllers:
|
for c in controllers:
|
||||||
data = safe_read(apath('%s/controllers/%s' % (app, c), r=request))
|
data = safe_read(apath('%s/controllers/%s' % (app, c), r=request))
|
||||||
items = find_exposed_functions(data)
|
try:
|
||||||
functions[c] = items and sorted(items) or []
|
items = find_exposed_functions(data)
|
||||||
|
functions[c] = items and sorted(items) or []
|
||||||
|
except SyntaxError as err:
|
||||||
|
functions[c] = ['SyntaxError:Line:%d' % err.lineno]
|
||||||
|
|
||||||
# Get all views
|
# Get all views
|
||||||
views = sorted(
|
views = sorted(
|
||||||
@@ -1138,12 +1144,12 @@ def design():
|
|||||||
include = {}
|
include = {}
|
||||||
for c in views:
|
for c in views:
|
||||||
data = safe_read(apath('%s/views/%s' % (app, c), r=request))
|
data = safe_read(apath('%s/views/%s' % (app, c), r=request))
|
||||||
items = regex_extend.findall(data)
|
items = re.findall(REGEX_EXTEND, data, re.MULTILINE)
|
||||||
|
|
||||||
if items:
|
if items:
|
||||||
extend[c] = items[0][1]
|
extend[c] = items[0][1]
|
||||||
|
|
||||||
items = regex_include.findall(data)
|
items = re.findall(REGEX_INCLUDE, data)
|
||||||
include[c] = [i[1] for i in items]
|
include[c] = [i[1] for i in items]
|
||||||
|
|
||||||
# Get all modules
|
# Get all modules
|
||||||
@@ -1265,8 +1271,11 @@ def plugin():
|
|||||||
functions = {}
|
functions = {}
|
||||||
for c in controllers:
|
for c in controllers:
|
||||||
data = safe_read(apath('%s/controllers/%s' % (app, c), r=request))
|
data = safe_read(apath('%s/controllers/%s' % (app, c), r=request))
|
||||||
items = find_exposed_functions(data)
|
try:
|
||||||
functions[c] = items and sorted(items) or []
|
items = find_exposed_functions(data)
|
||||||
|
functions[c] = items and sorted(items) or []
|
||||||
|
except SyntaxError as err:
|
||||||
|
functions[c] = ['SyntaxError:Line:%d' % err.lineno]
|
||||||
|
|
||||||
# Get all views
|
# Get all views
|
||||||
views = sorted(
|
views = sorted(
|
||||||
@@ -1276,11 +1285,11 @@ def plugin():
|
|||||||
include = {}
|
include = {}
|
||||||
for c in views:
|
for c in views:
|
||||||
data = safe_read(apath('%s/views/%s' % (app, c), r=request))
|
data = safe_read(apath('%s/views/%s' % (app, c), r=request))
|
||||||
items = regex_extend.findall(data)
|
items = re.findall(REGEX_EXTEND, data, re.MULTILINE)
|
||||||
if items:
|
if items:
|
||||||
extend[c] = items[0][1]
|
extend[c] = items[0][1]
|
||||||
|
|
||||||
items = regex_include.findall(data)
|
items = re.findall(REGEX_INCLUDE, data)
|
||||||
include[c] = [i[1] for i in items]
|
include[c] = [i[1] for i in items]
|
||||||
|
|
||||||
# Get all modules
|
# Get all modules
|
||||||
|
|||||||
@@ -25,6 +25,5 @@ from gluon.utils import md5_hash
|
|||||||
from gluon.fileutils import listdir, cleanpath, up
|
from gluon.fileutils import listdir, cleanpath, up
|
||||||
from gluon.fileutils import tar, tar_compiled, untar, fix_newlines
|
from gluon.fileutils import tar, tar_compiled, untar, fix_newlines
|
||||||
from gluon.languages import findT, update_all_languages
|
from gluon.languages import findT, update_all_languages
|
||||||
from gluon.myregex import *
|
|
||||||
from gluon.restricted import *
|
from gluon.restricted import *
|
||||||
from gluon.compileapp import compile_application, remove_compiled_application
|
from gluon.compileapp import compile_application, remove_compiled_application
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+1
-1
@@ -19,4 +19,4 @@ WORKDIR /web2py
|
|||||||
|
|
||||||
EXPOSE 443
|
EXPOSE 443
|
||||||
|
|
||||||
CMD python /web2py/web2py.py --nogui --no-banner -a 'a' -c web2py.crt -k web2py.key -i 0.0.0.0 -p 443
|
CMD python /web2py/web2py.py --no_gui --no_banner -a 'a' -k web2py.key -c web2py.crt -i 0.0.0.0 -p 443
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
Executable → Regular
+1
-1
@@ -24,4 +24,4 @@ WORKDIR /home/web2py/web2py
|
|||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000
|
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --no_gui --no_banner -a 'a' -i 0.0.0.0 -p 8000
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+1
-1
@@ -25,4 +25,4 @@ WORKDIR /home/web2py/web2py
|
|||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000
|
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --no_gui --no_banner -a 'a' -i 0.0.0.0 -p 8000
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+1
-1
@@ -25,4 +25,4 @@ WORKDIR /home/web2py/web2py
|
|||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000
|
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --no_gui --no_banner -a 'a' -i 0.0.0.0 -p 8000
|
||||||
|
|||||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+1
-1
@@ -24,4 +24,4 @@ WORKDIR /home/web2py/web2py
|
|||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --nogui --no-banner -a 'a' -i 0.0.0.0 -p 8000
|
CMD . /home/web2py/bin/activate && python /home/web2py/web2py/web2py.py --no_gui --no_banner -a 'a' -i 0.0.0.0 -p 8000
|
||||||
|
|||||||
Executable → Regular
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user