Commit Graph

82 Commits

Author SHA1 Message Date
Eli Ribble c26dba6d2e Insert an update record any time we update an OFX account
Makes it a little easier to report to the user what was done and when
2016-07-01 12:09:36 -06:00
Eli Ribble b716502b78 Make auth debug log less chatty
It was dumping way too much data, more than I needed
2016-07-01 12:08:38 -06:00
Eli Ribble 459a1b2960 Update ofxrecord amount to valid monetary numeric type
We don't want no floats around here, this is money. This stuff matters.

I also took the time to align up my comments so they are purtier
2016-07-01 11:59:46 -06:00
Eli Ribble d479ca3850 Add simple header to account details page
This will likely grow over time
2016-07-01 11:52:57 -06:00
Eli Ribble 568b5f6759 Fix setup.py to not expect the API module
But instead we expect the `pages` model which took its place
2016-06-30 15:20:24 -06:00
Eli Ribble 5f5dcd0cc2 Update to latest chryso
This gives us class-based resources which can help remove a great deal
of boilerplate from the code around injecting records
2016-06-30 15:20:00 -06:00
Eli Ribble 87165249b0 Alphabetically sort column names
They were bugging me
2016-06-28 16:09:21 -06:00
Eli Ribble 23c47535e9 Actually return the ofxaccount when queried by UUID
I screwed this up in a refactor at some point
2016-06-28 16:08:51 -06:00
Eli Ribble ccdd03b04b Add simple page for showing details about a single account
For now this just includes the transactions that we know about on the
account. It'll grow. Give it time
2016-06-28 16:07:59 -06:00
Eli Ribble 2cc0cfb2bb Stop dumping OFX data all over stdout when parsing
This was a great debugging measure, but stuff seems to be working now
and I don't need the clutter
2016-06-28 16:06:58 -06:00
Eli Ribble cd11c51cac Add last updated field to accounts table
The query here isn't quite right, but I don't have a network connection
so I can't be bothered to do the actual research to find out how to do
the SQL correctly. Also, I don't really care until I can do more
updates, so that's fine too
2016-06-28 16:06:14 -06:00
Eli Ribble 8a2f7bae70 Add table for tracking OFX updates
This is how we'll know when we queries via OFX for different accounts
and how we'll populate the table showing when we last updated an account
2016-06-28 15:48:50 -06:00
Eli Ribble f536f21d3c Standardize columns in our table
Like when we last did an update and whether or not something is deleted.
Nice for cleanup and code reuse
2016-06-28 15:46:18 -06:00
Eli Ribble 2ebdd6f99e Add some simple tools for parsing values out of endpoints
This will help us with some basic validation
2016-06-23 11:29:15 -06:00
Eli Ribble 662e1d25d5 Provide a sane default for getting transactions 2016-06-23 11:28:37 -06:00
Eli Ribble ba378a1c15 Make SGML less chatty in normal operation 2016-06-23 11:28:26 -06:00
Eli Ribble 57ac625ce0 Remove old tests
I'm not building the API that way any more and I want all my tests to
pass now
2016-06-23 10:28:37 -06:00
Eli Ribble 8fbf13b17c Allow privileged code to get any and all accounts
This is useful for testing. It requires specifying None rather than
defaulting for safety
2016-06-23 08:47:11 -06:00
Eli Ribble 6d6112de33 Update account creation to take in the account ID
We need the account ID to uniquely identify the account when we request
transactions. So now we require the user to input the data. Over time we
may be able to come up with a way to make this less onerous for the user
since, in this case, AFCU actually calculates the account ID from the
user ID.

But we'll get to that as we learn more
2016-06-23 08:44:26 -06:00
Eli Ribble f485f03f0c Add the account ID to the ofxaccount table
This is how we'll store the account ID we need to send to the
institution to identify the account we want to pull records from
2016-06-23 08:32:55 -06:00
Eli Ribble 1f978a3f28 Add a foreign key from OFXRecord to the OFXAccount used to get it
This makes it easier to tie together our records to the accounts we used
to pull the record
2016-06-23 08:29:52 -06:00
Eli Ribble e2821457f5 Add translating parsed SGML document into OFX structures
This gives the structures some semantic meaning beyond just being raw
SGML and adds some niceties in like parsing the datetimes and their
timezones.
2016-06-22 17:15:34 -06:00
Eli Ribble 95244d2974 Add a basic SGML parser
I tried BeautifulSoup, which was okay, but was missing an understanding
of how OFX does SGML. That's fine, writing my own parser was not that
big of a deal
2016-06-22 14:08:13 -06:00
Eli Ribble 104289418b Add support for creating and listing OFXAccounts
This makes it so that we can add new accounts and show the accounts that
we already have. We don't do anything with them yet, but that's okay it
was interesting figuring out how to get them set up at all. I'm
currently storing the passwords as unencrypted, which I intend to
change, but it's going to take some time to research exactly how to
encrypt them so that the data is not retrievable by a bad actor with
access to the database.
2016-06-21 07:51:36 -06:00
Eli Ribble 91f89d2cbd Add a name to each OFXAccount
So that users can identify their accounts with their own meaningful
names
2016-06-21 07:27:29 -06:00
Eli Ribble d17c592908 Make every OFXAccount have an owner
That way we can split out accounts by the user that created them.
Y'know, like permissions for multi-tenancy
2016-06-21 07:13:14 -06:00
Eli Ribble dbaba8bd52 Add a holder for static/css
Otherwise every time I commit it blows away my compiled CSS and I have
to tell sass to rebuild
2016-06-09 10:29:57 -06:00
Eli Ribble b9191c77af Remove errors module
It was for sepiida-style endpoints, so we won't be using it
2016-06-09 10:29:57 -06:00
Eli Ribble 3a6cb385ed Remove old JavaScript build stuff
This was neat and everything, but I'm committed to not building a
single-page app at this point, so I don't need to structure my tech this
way
2016-06-09 10:29:57 -06:00
Eli Ribble 0aecabea75 Add the accounts page placeholder
This proves out that my navigation works the way that I want and that my
auto context variables are working. Currently we don't do much but say
they have no accounts, but we can build that up over time
2016-06-09 10:29:57 -06:00
Eli Ribble e1f39bb852 Use automatic template context rather than passing the path through
Saves me having to push a bunch of common stuff through, which just
makes sense
2016-06-09 10:18:30 -06:00
Eli Ribble 31d810b65d Clean up old sepiida-based work, create pattern for pages
I'm going to do server-side rendering. That means that I don't really
need sepiida in the way we think of it because I don't need a JSON-based
API to do my UI. And that's fine. This simplifies a bunch of stuff, so
I'll be happy with it

This commit breaks apart my growing list of endpoints into a new module,
vanth.pages, where I intend to keep the various pages. I've put auth in
a separate, non-pages module even though it has pages because auth is a
special beast that deals with sessions and DB stuff, so I like it in a
separate kind of module
2016-06-09 10:12:24 -06:00
Eli Ribble f566ca8914 Remove my old test logout button
I now have a legit logout button in my navbar!
2016-06-09 10:00:00 -06:00
Eli Ribble 213562120c Fix my logout form
I accidentally an =
2016-06-09 09:58:50 -06:00
Eli Ribble 30f77f1569 Ignore sass cache files 2016-06-09 09:58:14 -06:00
Eli Ribble 173a88a3b3 Make my dropdown menu black like my navbar
I like the black-on-white asthetic, so let's make the dropdown menu do
that. I pulled this code from
https://github.com/twbs/bootstrap/issues/9588

It works great now that I'm processing my sass
2016-06-09 09:57:04 -06:00
Eli Ribble 04c796c18a Re-add our styles as sass
I haven't actually changed the content, just the extension and my
intention to start using SASS because it makes my development life
easier
2016-06-09 09:56:33 -06:00
Eli Ribble 9d2f0c5377 Remove our old CSS in favor of SASS
I'm going to add the SASS in a bit. For now I just want to get these
removed to make room for where I'm going to be putting the SASS
post-processed output
2016-06-09 09:55:35 -06:00
Eli Ribble 5cc8e1a205 Fix up navbar to have the structure I wanted
This means logout in a menu underneath the username, some high-level
navigation points, that sort of thing
2016-06-09 09:43:59 -06:00
Eli Ribble 60e6f7c834 Add a navbar to the main page after login
I'll probably use it. Fairly certain. It looks nice either way.

This breaks up the main layout to 'things with the navbar' and 'things
without' and uses inheritance to make it all work out nicely. I also
added my first static asset which assumes nginx is properly configured
to serve up the file rather than doing it through vanth
2016-06-09 01:19:03 -06:00
Eli Ribble 4cb867a0ff Get form-based sessions working
This removes some of the logic associated with using JSON based
authentication in favor of the simpler and more built-in form based
authentication that I had originally gotten working. This requires no
JavaScript from the browser, which is its own reward
2016-06-09 00:53:01 -06:00
Eli Ribble 8c6c6670f8 Pretty up my login form with bootstrap styles
Mostly I just used he right class for the layout container and added
some classes to the login form so that bootstrap styles could handle
the rest
2016-06-09 00:38:34 -06:00
Eli Ribble e70ad7c2b5 Add bootstrap styles and javascript from MaxCDN
This will help me pretty things up around here
2016-06-09 00:33:59 -06:00
Eli Ribble ff9829d4d2 Switch back to using form-based login/logout
I've decided I want this application to be a progressive enhancement
application. That means that I'm not going to keep dealing with the
insanity that is Javascript bundling and transpiling and building the
entire UI in JS. I want to believe I can treat the web the way that it's
been designed for decades - as a document platform with enhancement
capabilities rather than as an emerging VM
2016-06-02 20:51:08 -06:00
Eli Ribble 08814d6d9e Add simple API for getting OFXSources
We'll use this in the API to show a list of accounts before adding a new
one
2016-05-18 15:54:28 -06:00
Eli Ribble 4f3ef1b102 Add simple script for inserting ofxsources
This only adds one institution that I care about, AFCU, but could be
extended to use the data from ofxhome.com. I downloaded the data from
them but found two problems. One, they work in XML, which I don't feel
like parsing, but two and far more importantly, they provide the second
piece of data I need, the routing number for the bank. That sucks. So
it's likely that if this project does well we will have more data than
them.
2016-05-18 15:42:46 -06:00
Eli Ribble 63a22e27e0 Add unique constraints on some of our tables
I just missed thinking about this originally
2016-05-18 15:41:04 -06:00
Eli Ribble 9eef6c9754 Basic outline of the accounts page 2016-05-18 15:02:14 -06:00
Eli Ribble 2255d34ee9 Break out navbar into a separate component
Then we can reuse it. In everything
2016-05-18 15:00:12 -06:00
Eli Ribble db60fc99af Stop ignoring my lib directory
It's where I keep my javascripts
2016-05-17 16:38:52 -06:00