{"action":"opened","issue":{"url":"https://api.github.com/repos/aumayr/beancount-web/issues/47","labels_url":"https://api.github.com/repos/aumayr/beancount-web/issues/47/labels{/name}","comments_url":"https://api.github.com/repos/aumayr/beancount-web/issues/47/comments","events_url":"https://api.github.com/repos/aumayr/beancount-web/issues/47/events","html_url":"https://github.com/aumayr/beancount-web/issues/47","id":122645232,"number":47,"title":"Crashes when an invalid (?) time filter is chosen","user":{"login":"redstreet","id":691755,"avatar_url":"https://avatars.githubusercontent.com/u/691755?v=3","gravatar_id":"","url":"https://api.github.com/users/redstreet","html_url":"https://github.com/redstreet","followers_url":"https://api.github.com/users/redstreet/followers","following_url":"https://api.github.com/users/redstreet/following{/other_user}","gists_url":"https://api.github.com/users/redstreet/gists{/gist_id}","starred_url":"https://api.github.com/users/redstreet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/redstreet/subscriptions","organizations_url":"https://api.github.com/users/redstreet/orgs","repos_url":"https://api.github.com/users/redstreet/repos","events_url":"https://api.github.com/users/redstreet/events{/privacy}","received_events_url":"https://api.github.com/users/redstreet/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-17T02:04:43Z","updated_at":"2015-12-17T02:04:43Z","closed_at":null,"body":"I tried to type \"2014-2015\" into the Time filter. It would be nice if that format worked (sneaking in a feature request here!), but given that it doesn't, I get an error:\r\n\r\nhttp://localhost:5000/account/Assets:Bank:BankNane/monthly_balances/?filter_time=2014-2015\r\n\r\n```python\r\nbuiltins.TypeError\r\nTypeError: 'NoneType' object is not iterable\r\n\r\nTraceback (most recent call last)\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1836, in __call__\r\nreturn self.wsgi_app(environ, start_response)\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1820, in wsgi_app\r\nresponse = self.make_response(self.handle_exception(e))\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1403, in handle_exception\r\nreraise(exc_type, exc_value, tb)\r\nFile \"/usr/lib/python3.4/site-packages/flask/_compat.py\", line 33, in reraise\r\nOpen an interactive python shell in this frameraise value\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1817, in wsgi_app\r\nresponse = self.full_dispatch_request()\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1477, in full_dispatch_request\r\nrv = self.handle_user_exception(e)\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1381, in handle_user_exception\r\nreraise(exc_type, exc_value, tb)\r\nFile \"/usr/lib/python3.4/site-packages/flask/_compat.py\", line 33, in reraise\r\nraise value\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1473, in full_dispatch_request\r\nrv = self.preprocess_request()\r\nFile \"/usr/lib/python3.4/site-packages/flask/app.py\", line 1666, in preprocess_request\r\nrv = func()\r\nFile \"/usr/lib/python3.4/site-packages/beancount_web-0.1.0a2-py3.4.egg/beancount_web/application.py\", line 250, in perform_global_filters\r\npayees=app.entry_filters.get('payees', set()).copy())\r\nFile \"/usr/lib/python3.4/site-packages/beancount_web-0.1.0a2-py3.4.egg/beancount_web/api.py\", line 238, in filter\r\nself.apply_filters()\r\nFile \"/usr/lib/python3.4/site-packages/beancount_web-0.1.0a2-py3.4.egg/beancount_web/api.py\", line 207, in apply_filters\r\nbegin_date, end_date = parse_date(self.filters['time_str'])\r\nTypeError: 'NoneType' object is not iterable\r\nThe debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.\r\nTo switch between the interactive traceback and the plaintext one, you can click on the \"Traceback\" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.\r\n\r\nYou can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:\r\n\r\ndump() shows all variables in the frame\r\ndump(obj) dumps all that's known about the object\r\nBrought to you by DON'T PANIC, your friendly Werkzeug powered traceback interpreter.\r\n````"}}