epocdotfr / webtodotxt Goto Github PK
View Code? Open in Web Editor NEWWeb-based GUI to manage a Todo.txt file
License: Other
Web-based GUI to manage a Todo.txt file
License: Other
it would be nice, if i could install this web app to a subdirectory, e.g. http://myhost.com/webtodotxt/
It would be nice if finished task would be moved to a file e.g. done.txt
Dirty state. Make the Save button bold to make this state visible.
Also, it is not always showed at the very top of the task list.
Show "in 2 days" instead of "3, october 2017" only if they are near (within 4 days timespan).
For the following inline styles:
Using localForage, AppCache/Service workers: https://developer.mozilla.org/en-US/Apps/Fundamentals/Offline
For the Ajax requests, use https://gist.github.com/Xeoncross/7663273
So humanizing them will not display the hours remaining (we don't care about hours).
Edit several task data at the same time:
Dear developers,
I regret to inform you this project is abandoned and is no longer maintained, it has thus been archived. I no longer have interest for the Todo.txt file format.
Feel free to create a fork, publish on PyPI or whatever you want as long as it's complying with the license.
Thanks to the past contributors.
Best regards,
Maxime
Hi, after submitting correct user & password I get the error:
A server error occured! Please retry. If the error persists, please report an issue here.
in the console the following:
192.168.0.23 - - [08/Sep/2018 12:43:12] "GET / HTTP/1.1" 401 -
[2018-09-08 12:43:18,034] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python2.7/dist-packages/flask_httpauth.py", line 97, in decorated
password = self.get_auth_password(auth)
File "/usr/local/lib/python2.7/dist-packages/flask_httpauth.py", line 83, in get_auth_password
password = self.get_password_callback(auth.username)
File "/opt/webtodotxt/hooks.py", line 19, in get_password
backend = get_current_auth_backend()
File "/opt/webtodotxt/helpers.py", line 31, in get_current_auth_backend
return getattr(auth_backends, name)()
File "/opt/webtodotxt/auth_backends.py", line 24, in __init__
super(DictAuth, self).__init__(*args, **kwargs)
TypeError: super() argument 1 must be type, not classobj
Maybe the UTF-8 with BOM is the issue?
Today, i rebuilt the docker container with all updated components (alpine updates, python dependency updates etc) and it stopped working. I always get a connection timeout error.
I am using WebdavAuth. It worked until today before i updated.
The only python requirement which got recently updated is https://pypi.org/project/Flask-HTTPAuth/#history
But maybe some python core dependency got updated too?
With two other clients, the webdav (with nextcloud) works fine. Even Simpletask app with Nextcloud support still works fine.
Do you have any idea how i can recover from this error?
My error message is:
[2018-06-06 20:41:01,478] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 387, in _make_request
six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 383, in _make_request
httplib_response = conn.getresponse()
File "/usr/local/lib/python3.6/http/client.py", line 1331, in getresponse
response.begin()
File "/usr/local/lib/python3.6/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/local/lib/python3.6/http/client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/local/lib/python3.6/socket.py", line 586, in readinto
return self._sock.recv_into(b)
File "/usr/local/lib/python3.6/ssl.py", line 1009, in recv_into
return self.read(nbytes, buffer)
File "/usr/local/lib/python3.6/ssl.py", line 871, in read
return self._sslobj.read(len, buffer)
File "/usr/local/lib/python3.6/ssl.py", line 631, in read
v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 357, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/local/lib/python3.6/site-packages/urllib3/packages/six.py", line 686, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 389, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 309, in _raise_timeout
raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='cloud.test.de', port=443): Read timed out. (read timeout=30)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/webdav3/client.py", line 70, in _wrapper
res = fn(self, *args, **kw)
File "/usr/local/lib/python3.6/site-packages/webdav3/client.py", line 273, in check
response = self.execute_request(action='check', path=urn.quote())
File "/usr/local/lib/python3.6/site-packages/webdav3/client.py", line 164, in execute_request
data=data
File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 521, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='cloud.test.de', port=443): Read timed out. (read timeout=30)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.6/site-packages/flask_httpauth.py", line 85, in decorated
password = self.get_password_callback(auth.username)
File "./hooks.py", line 21, in get_password
return backend.retrieve_password(username)
File "./auth_backends.py", line 49, in retrieve_password
if client.check(self.config['path'].format(username=username)):
File "/usr/local/lib/python3.6/site-packages/webdav3/client.py", line 74, in _wrapper
raise ConnectionException(re)
webdav3.exceptions.ConnectionException: HTTPSConnectionPool(host='cloud.test.de', port=443): Read timed out. (read timeout=30)
[pid: 15|app: 0|req: 6/8] 172.17.0.1 () {48 vars in 998 bytes} [Wed Jun 6 20:40:31 2018] GET / => generated 1594 bytes in 30114 msecs (HTTP/1.0 500) 2 headers in 100 bytes (1 switches on core 1)
[pid: 16|app: 0|req: 3/9] 172.17.0.1 () {48 vars in 1019 bytes} [Wed Jun 6 20:41:01 2018] GET /todotxt-static/css/app.css => generated 8929 bytes in 2 msecs via sendfile() (HTTP/1.0 200) 8 headers in 301 bytes (0 switches on core 0)
Currently there is no quick way to check app. It should be possible without installing all python dependencies.
So when the user creates a bookmark from the current page, the filters will be initialized accordingly at startup.
Except if the filter is empty/default value.
I do not know if this is a proxy configuration problem, or not.
The tasks are always sorted alphabetical by default. If i click on the edit button and change the first chars from a task, the tasks moves to another position on the list.
This gets worse if my list is longer than a full page and the task i am typing chars into is hidden now. Of course this is a minor bug, but it might improve the user experience for editing existing tasks a lot.
It would be nice, if the task, which i am currently editing, gets only resorted when i hit save.
It would be nice to have this web app support hidden tasks. This is already supported by the Simpletasks Android application and well explained in their documentation:
Hidden tasks with h:1, this allows dummy tasks with predefined lists and tags so that lists and tags will be available even if the last task with the tag/list is removed from todo.txt. These tasks will not be shown by default. You can temporarily display them from the Settings.
It would be nice if the webtodotxt application would support the same hidden tag as Simpletasks and automatically hide hidden tasks. Furthermore the filter menu should have the possibility to switch between showing hidden tasks and not showing them. Default option shall be to hide tasks with that special tag.
After like 5 seconds. But keep the Save button.
Don't forget to update the readme with this new feature.
Hi,
First off thank you for doing this. I really like todo.txt but I can't use it right now on my new work computer because I am not allowed to install software myself on it (including Chrome which would at least give me the extension). My only solution is finding a browser access. So thanks!
Anyway I found your git and am trying to spin it up. I am not a very experienced wed developer. So I apologize in advance if my questions are a bit naive. For your information, I am using WSL.
I followed your instructions. I made to the python local.py part (I did not use docker). So the website opens in Firefox under the url http://localhost:8080/ but somehow I get the error: "Access to this resource is forbidden."
Here is how I am using your config file. I am using Dropbox, so I set the storage_backend_to_use to "Dropbox". I set up the app in Dropbox giving me access only to that folder and generated an access token which I pasted in the storage_backends part. I set the path to point to the file in that specific folder. In the users section, I entered random new credentials. In the secret_key section, I entered a random Unicode. the auth_backend_to_use is set to "DictAuth".
The logs say the following:
127.0.0.1 - - [21/Jan/2021 17:36:40] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2021 17:36:40] "GET /favicon.png HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2021 17:36:40] "GET /favicon.ico HTTP/1.1" 200 -
Any idea what I might be doing wrong?
Cheers,
Ed
Using LocalStorage. This way, when opening Web Todo.txt, filters are restored automagically.
Stored in the so called "tags" by todotxtio:
due:YYYY-MM-DD
(due date)
h:1
(hidden tasks)
Each project/context must be persisted in the localStorage. If there's no more todo that are using them, they will still be available.
Also allow to remove them (but only if they are no more used).
pip install -r requirements.txt
)pybabel compile -d translations
)A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.