Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: obmarg/resumr
base: e059af660c
head fork: obmarg/resumr
compare: 04a7e871a7
Commits on May 13, 2012
@obmarg Initial - slightly modded bootstrap + coffeescript 54c5164
@obmarg Basic layout defined in index.html 6541eb4
@obmarg Added Backbone Marionette & Require.js 51e244b
@obmarg Now using compiled css rather than LESS.js 0bc7a4a
@obmarg Added basic cs code outline & test data
This changeset adds the basic outline for the top level coffeescript
code and some of the overall layout code.
Also includes some sample templates & data in index.html for the basic
@obmarg Added controller & relocated layout & view setup
- Added Controller class to deal with routing requests
- Switched to Marionette.AppRouter rather than plain Backbone.Router
- Moved section overview layout setup & view creation code into the
  Controller, rather than in the app initialize code
@obmarg Implemented section delete button
When the section delete button is clicked, the model will be destroyed,
which will propagate properly through all the views.
As there is no server side yet, this will not have a permanant effect
@obmarg Implemented move up & down in sectionListView
sectionItemView triggers events on the corresponding button presses,
which sectionListView picks up, re-orders the collection and then
@obmarg Merge branch 'feature/layout' into develop
Finished basic layout
Commits on May 14, 2012
@obmarg Added Pagedown (and order plugin for Require.js) c162bbd
@obmarg Layout & themeing of sectionEditor
- Added sectionEditor view that loads up template from the HTML.
- Added an event binder to the controller that waits till the
  sectionEditor has been appended to the HTML, and triggers creation of
  the Pagedown editor
- Added wmd-buttons image
- Added some stuff to style.less for styling the editor
@obmarg Section Editor is now populated with content 45a9559
@obmarg Merge branch 'feature/editor' into develop af6f548
@obmarg sectionItemView now renders Markdown
Also update test data to use markdown
@obmarg Changes made in sectionEditor are now saved
Changes made in the sectionEditor will now be saved and displayed in the
Commits on May 29, 2012
@obmarg Initial python document and section objects
Sections are each represented by a branch with a single file in it
(named after the section), with the branch name sections/name.

Documents can be loaded (but not created currently) and either existing
Sections listed, or new Sections created.
@obmarg Section now lets you view & set current content
Shifted commit code out into gitutils
Section will now allow you to view the current content, and set the
current content.
@obmarg Sections now provide content history eba427c
@obmarg master branch now created on startup
Section creation has the option of supplying content as well
@obmarg Added tests of gitutils a171589
@obmarg Added tests of Document class 4357332
Commits on May 30, 2012
@obmarg Added some tests of the Section object 6b9cf6b
@obmarg Moved git code into db package 0b4ccee
@obmarg Split section out into it's own file f87ba06
@obmarg Merge branch 'feature/db' into develop 7904265
Commits on May 31, 2012
@obmarg Added FindSection & Exceptions to db package
- Added FindSection class to the Document class, to allow a specifc
  section to be found by name
- Added some Exception classes to the package, which are now thrown on
  either repository not found or section not found
- Added test of the new functionality
@obmarg Initial flask app & adjusted paths in js/css/html
- Adjusted paths in js/css/html
- Added a basic flask app that presents index.html
- Added a symlink in the templates directory to index.html in the static
  directory, to allow flask to present it as a URL (for now, in the
  future might stop revert this to allow html to be served properly
@obmarg Added basic section list API and hooked up to view c3f2a61
@obmarg Section list now sorted by 'pos' attribute
Section list is now sorted based on the pos attribute returned by the
Currently this pos attribute is just the order that the sections are
returned from git in, but this will change in a future changeset
@obmarg Various section editor refactors
- Added title with save and cancel buttons to the header.
- Saving to the model is now dealt with by clicking the save button
- Data is still not synced to the server
- Controller now uses a jQuery deferred for loading the section data
  from the server.
- Controller now uses the above deferred to hold off on creating the
  sectionEditor if section data has not yet been loaded from the server.
- Section editing is now keyed off section name
@obmarg Removed some accidentally added js files
Not sure how they got in there, but they shouldn't have been.
@obmarg SectionEditor now saves to the database on save b2bd8b8
Commits on Jun 04, 2012
@obmarg Merge branch 'feature/initialServer' into develop bd64729
@obmarg Added CurrentSections function to Document
- Added the basic interface outline for the SectionIndex class
- Added exceptions for use by the SectionIndex class
- Added a constant for the sectionIndex file
- Added the CurrentSections function to Document, that makes use of the
  SectionIndex class.
- Added tests of the CurrentSections function in Document
@obmarg Tests & implementation of SectionIndex
Currently no manual testing has been done, as the frontend that uses
the actual data returned from the SectionIndex does not exist
@obmarg Added GetPosition functions (and tests) aa2cc50
@obmarg Added SetSectionPosition functions & tests
Currently the position changes are not saved
@obmarg Added Save function to SectionIndex
Currently this function is not called anywhere
@obmarg Sections are now added to the index on creation
Also fixed some miscellaneous other bugs, and wrote tests for all the

This changeset has had some limited manual testing done on it
@obmarg Section position changes in UI are now saved f3bf5fc
@obmarg Merge branch 'feature/sectionPositions' into develop 550ed48
@obmarg Added RemoveSection functions & tests 4a03b8c
@obmarg Sections can now be removed f9e5c19
@obmarg Merge branch 'feature/deleteSection' into develop 6dc6f44
@obmarg Coffeescript, less & html for new section view
This isn't complete, just the basic outline of the view with no actual
Commits on Jun 05, 2012
@obmarg Add new section now allows you to save to server
This changeset implements the client & server side of the add new
section functionality.
@obmarg Usability improvements to add/edit section view
- Add section view now changes itself to editing section view after the
  first save.
- Tab order is now a bit more sane: name, text box, save, cancel
- Focus is now set to either the section name or the text box on
  creation of the view
@obmarg Added client side validation of add/edit section
No specific server side validation is done at this point, but I think
pygit2 might object to some of the error conditions.  This is something
for later.

Currently the client side validation just pops up an alert in the middle
of the screen above the content boxes.  This will do for now, but in the
future it'd be good to highlight the offending fields or show tooltips
on them or something.  That's also something for later
@obmarg Merge branch 'feature/newSection' into develop
After the work on this feature branch it should be possible to use the UI to
add a new section
Commits on Jun 08, 2012
@obmarg Re-organised db tests into seperate files
Previously all db tests were contained in db/  This changeset
re-organises them into seperate .py files contained within the db.tests
@obmarg Added proper test of the db subsystem
Previously all the db unit tests just mocked out bits of the system and
tested behaviour of individual functions/classes.  This test takes the
db subsystem as a whole and checks that everything functions as it
@obmarg Merge branch 'feature/dbSystemTests' into develop d67bdfc
Commits on Jun 11, 2012
@obmarg Added render template & view
Currently the output is not styled, as the bootstrap CSS doesn't really
look particularly good without all it's container div's etc.  Probably a
good idea to either add in the container div's or to use different CSS
@obmarg Render view is now (partially) styled
Imported the bootstrap CSS into the render view template.
Added some custom CSS to remove space bootstrap inserts for the header
Fixed render link in titlebar
@obmarg Merge branch 'feature/render' into develop f0cb8da
@obmarg Removed sample data from index template
The index.html template still contained sample data that was used in the
rendering of the site before there was a server component.  This change
removes that data.
Commits on Jun 22, 2012
@obmarg Added tests of the sections RESTful API 96ca919
@obmarg Added Requirements.txt file for use with pip 71c8657
@obmarg Added tests of index & render views 274f270
@obmarg Merge branch 'feature/serverTests' into develop c78e28b
@obmarg Implemented initial client side for sectionHistory
Currently no server side is implemented, so the view just displays the
current section content.
The CSS and layout may also require some more work.
@obmarg Initial attempt at section history LESS daf4a38
@obmarg Wrote server side of section history view a0a2fa6
@obmarg Linked sectionHistory UI up to REST API c64f900
@obmarg Test files now .gitignored & fixed coverage xml 6b45b96
Commits on Jun 23, 2012
@obmarg Added amplify.request.js
Currently this is loaded top-level in the HTML, much like most of the
other libraries i'm using.  Would be good to move it to AMD for use with
the require.js optimizer.  That's a task for the future though.
@obmarg Added tests of section history list 11d0f69
@obmarg Server side of select section history & tests f0f8765
@obmarg Added amplify.core.js
Turns out that amplify.request depends on amplify.core (though this
doesn't seem to be explicitly documented anywhere). So this changeset
adds it.
@obmarg Client side of section history item selection 994c25d
@obmarg Main view now updates when history item selected
Previously a fetch was occuring when the section history item was
selected, but the server side was not yet implemented.

This changeset updates the server side to support fetching of individual
sections, and some tests for them.

Also updates the sectionItemView to call render when the model is
changed (quite surprised this wasn't a marionette default, but suppose
it's not what you'd want all the time)
@obmarg Merge branch 'feature/revisionHistory' into develop
It's now possible to view & select the revision history of the individual
Commits on Jun 24, 2012
@obmarg Fixed bug in section validate code.
Turns out that the fields for validation are passed in to the function,
but the existing code expected them to already be set on the model.
This was stopping new models from being created, amongst other things
@obmarg Started writing OAuth2 code for FB & Google 6c666f6
@obmarg Added login view & template
This changeset adds a view for the login page, a corresponding
template and a simple unit test.
Added images & css for use with the "Login using ..." buttons

Also temporarily added some redirect code to that will
cause the index page to redirect to login every time.  This code can be
replaced with something more suitable after development of login has
progressed a bit.
@obmarg Refactor & setup auth services and load config
This changeset refactors the auth service code from a couple of
changesets ago, updates the main running code to load configuration and
then setup the facebook & google auth services.

Also added an example configuration file
@obmarg Login page now built from actual service info d58d639
@obmarg Implemented handling of OAuth response (untested) 11f2728
@obmarg Renamed RESUMR_SETTINGS env var to RESUMR_CONFIG 9095be2
@obmarg Fixed up app for running under uWsgi 140537f
@obmarg Fixed bugs in google OAuth - now working properly 676412a
@obmarg Renamed & refactored auth/services and wrote tests
This changeset renames auth/ to services/, and splits
out the exception class into its own file, for later use.
Added proper definitions to __init__ so that we can just import
from there.
Refactored the OAuth classes to encapsulate rauth rather than inherit,
to make testing easier.
Wrote tests of the majority of the OAuth service code (except the
GetService function)
@obmarg Wrote facebook service class & unit tests 2c6cf55
@obmarg Implemented google service & tests
Also manually tested google auth to ensure that users email address is
And fixed up facebook to request email permissions, and request the
email address rather than the userid.
@obmarg Wrote tests of OAuthCallback view 8770d1d
@obmarg Hooked user auth up to rest of application
This changeset hooks the user authentication up to the rest of the

- Removed temporary javascript redirect from
- User auth is now saved to the session on login
- Added login checks to index & render - they'll redirect to login if
  user isn't authenticated.
- All REST APIs will return 401 errors if user isn't authenticated
- Git databases are now loaded based on the auth type & email of the
- Also updated tests for this new functionality
@obmarg Login page redirects to index if already logged in a8a92d4
@obmarg Added logout view & link 34cd050
@obmarg Fixed bug with facebook login code
Facebook authentication GETs the auth code rather than POSTs, which
means that the data needs to be passed in via a slightly different
parameter.  This commit implements that change and updates unit tests
@obmarg Merge branch 'feature/login' into develop
Basic login feature is now complete.
Users can login via their google or facebook accounts.
Users can logout
The git repository used is linked to the account used.
@obmarg Added SERVER_NAME & SECRET_KEY to default config
Should hopefully fix the test failures on jenkins
@obmarg Added rest of default config (should fixes CI) 97f1fbb
@obmarg Setting up SERVER_NAME & SECRET_KEY for tests
CI tests are *still* failing, though I'm not sure why, as they all work
fine locally.  I'm setting up some more variables semi-correctly in the
tests in the hopes that fixes it.
Commits on Jun 25, 2012
@obmarg New option to bypass login for offline development 862c8b0
@obmarg Navbar 'active' now reflects current page
Previously the navBar would always act as if "Overall Layout" was the
current page.  This changeset updates it to reflect what the current
page is.  Of course a few of the pages don't actually have links in the
nav bar, so for them it displays nothing.  Not ideal, but not sure how
to overcome this at the moment.
@obmarg Moved code into
Previously I had an entire file to define the standalone
AJAX requests used in the app.  Currently there's only one, and I don't
forsee too many others, so it seems a bit pointless dedicating an entire
file to 4 or so lines of code.

This changeset just moves that code into an initializer in the file (this is where it was being called from originally
@obmarg Path to git data files is now configurable 36810ca
Commits on Jun 26, 2012
@obmarg Added build & deployment scripts
- Added fabfile for build & deployment.  Builds to "build" folder, and
  deploys to plug via rsync
- Added requirejs optimizer config script
- Split "support" requirements out into their own Requirements file.
  This is for things like testing frameworks, deployment requirements.
  Stuff that isn't actually used by the main app, but is required by
  supporting scripts etc.
Commits on Jun 30, 2012
@obmarg Added Gemfile & cucumber support file 31c6415
@obmarg Fixed some problems in resumr tests 63ade4c
Commits on Jul 01, 2012
@obmarg Resumr now supports running in systemtest mode
This is a new mode that allows the systemtests to manipulate the server,
and sets up various config options to be suitable for tests

Currently, there are 2 systemtest specific URLs, one which resets the
systemtest git database, and the other which (temporarily) enables
logins.  By default, logins are not required in system test mode.

Also updated the cucumber env.rb file with some corrections, and code to
run the systemtest reset at the end of each test
@obmarg Added basic section list system tests 73eace7
@obmarg Added system tests of edit & view history buttons 7c1fe4b
@obmarg Added move section up & down tests 570429c
@obmarg Added delete section system tests 37eeeae
@obmarg Added tests of new section page
Also switched to using selenium for now, as poltergeist/phantom.js was
causing some of the tests to fail for unknown reasons.  Rather annoying,
but I'll have to look into it later if at all.
@obmarg Added system tests of edit section page 97f02cc
@obmarg Added (simple) tests of login 001ef16
@obmarg Added tests of section history feature
Currently one of these is not functional.  This appears to be due to a
bug in the section history functionality though, so I'm commiting these
changes anyway.  Imagine that, tests finding a bug :O
@obmarg Merge branch 'feature/systemTests' into develop 4702beb
Commits on Jul 02, 2012
@obmarg Fixed issue with spurious section commits
Prior to this changeset, every single UpdateSection call would result in
a commit of the section content, and a commit of the section position.
Since the UI doesn't presently stop the user from hitting save on a
section multiple times this could cause lots of spurious commits to be
created for a section very easily.  Updating the position of a section
also causes a call to this API method, causing even more spurious

This changeset updates the UpdateSection method to only update the
content/position if they have actually changed.
@obmarg Section editor only saves changed data
As a follow on from the last commit, this commit updates the client side
section editor to only try and save the section if it's contents have
actually changed.