Commit graph

270 commits

Author SHA1 Message Date
Katrina Owen
a4ae0c03bf Fix failing tests 2013-03-18 21:54:19 -06:00
Katrina Owen
a690e4a4cd Extract methods in pie chart data model 2013-03-18 19:57:42 -06:00
Katrina Owen
961227da0c Extract pie chart data logic into model layer
Move most of the tests for this logic into the unit test layer.
2013-03-18 19:49:54 -06:00
Reinier Balt
22b371ef8c do a big refactor of rendering collections of todos for home page, tag page, project page, context page 2013-03-18 12:36:40 +01:00
Matt Rogers
f541a4c9d6 Simplify SearchController#results
Give names to the various things being searched for and move them out
into their own methods. Also add scopes to give names to things being
queried out of the models.
2013-03-12 19:49:19 -05:00
Katrina Owen
3479585991 Use a more appropriate name for stats domain object 2013-03-05 07:49:44 -07:00
Katrina Owen
d5a555fbac Encapsulate dependencies of stats index page
This may be a bit extreme.

It's modeled after the ideal "rails way".

In the controller, we now know the name of a single resource. It
doesn't happen to be backed by a database table, but it does know all
about the task of collecting stats, leaving the controller concerned
with just munging params and rendering stuff.

I called the resource `IndexPage`, to avoid the temptation of trying to
reuse it, which can get pretty messy.

Later, if a better abstraction appears, it should be fairly painless to
alter.
2013-03-02 17:35:19 -07:00
Katrina Owen
615a9e46c9 Encapsulate counts and totals into a class.
Move queries out of the view and into the model layer.
2013-03-02 17:22:15 -07:00
Katrina Owen
6ccb9a81fb Group context-related pieces in a class 2013-03-02 17:21:03 -07:00
Katrina Owen
8b1f0a34a0 Group project-related stats into a class.
Reduce number of instance variables available to the views.
Replace raw SQL with AR-type query.
2013-03-02 17:12:14 -07:00
Katrina Owen
c4433a5ea9 Don't round in ttc.min_sec method
This fixes a bug where it would round 1.8 days up to
2 days, and still display the extra hours in addition.
2013-03-02 16:16:45 -05:00
Katrina Owen
03282638af Move calculation out of view 2013-03-02 16:16:45 -05:00
Katrina Owen
62336f94cd Move time to complete stats into separate class
This separates out the calculations from the queries so we can get
decent tests around them.
2013-03-02 16:16:45 -05:00
Katrina Owen
0ebb98d49f Encapsulate action stats
This gets rid of a bunch of instance variables in the view/controller
layer.
2013-03-02 16:16:45 -05:00
Matt Rogers
004339a2ca Merge pull request #164 from kytrinyx/adjust-font-size
Split up the font size calculation
2013-03-02 05:40:38 -08:00
Katrina Owen
1b7ed32024 Fold two more SQL queries into the query object 2013-03-02 07:54:13 -05:00
Katrina Owen
3f496db4b4 Split up the font size calculation
The font size is a view concern, but the relative size belongs in the
model layer.
2013-03-02 07:14:52 -05:00
Matt Rogers
ae42f9c076 Merge pull request #163 from kytrinyx/stats-project-view
Simplify stats project view
2013-03-01 22:02:39 -08:00
Matt Rogers
3365b7e79f Merge pull request #162 from kytrinyx/projects-stats
Extract duplicate top projects query from stats controller
2013-03-01 21:58:34 -08:00
Katrina Owen
2686a0d3b5 Don't link to null projects
If you have fewer than 10 projects, then empty running projects were
linked to with the path `/projects/-1`.

Copy/pasted the list strategy from the other project sections in the
same partial so the duplication becomes explicit.
2013-03-02 00:19:47 -05:00
Katrina Owen
a23d2eb070 Extract duplicate context query from controller 2013-03-01 23:29:54 -05:00
Katrina Owen
6de4713d38 Extract top projects query object
This removed a bit of duplication from the stats controller.
2013-03-01 23:11:44 -05:00
Matt Rogers
f375c06964 Merge pull request #160 from kytrinyx/tag-counts
Extract duplicated query from stats controller
2013-03-01 18:52:52 -08:00
Katrina Owen
4dff7538ea Extract duplicated query
This includes a bit of a simplification which assumes that there aren't
any orphan taggings for a user.
2013-03-01 21:27:58 -05:00
Katrina Owen
0aa6ea183b Extract chart value object
This simplifies the views (slightly).
2013-03-01 20:38:24 -05:00
Matt Rogers
8b0f3e986a Merge branch 'tag-cloud' of https://github.com/kytrinyx/tracks 2013-03-01 16:49:53 -06:00
Katrina Owen
cd7a5e0866 Delete redundant casting in tag cloud 2013-03-01 16:12:00 -05:00
Katrina Owen
a13199cdda Add unit test for tag cloud 2013-03-01 16:03:35 -05:00
Katrina Owen
a81f5b76f3 Separate query from cloud
This will make testing easier
2013-03-01 13:14:27 -05:00
Reinier Balt
4df340bd7b add ui for changing state of context to closed. This fixes #645 2013-03-01 16:22:30 +01:00
Reinier Balt
acab98d4c7 fix failing tests 2013-03-01 16:22:29 +01:00
Reinier Balt
bf3a1e653a increate test coverage for user and project model 2013-03-01 16:22:29 +01:00
Reinier Balt
188baa938d remove unused method from tag model 2013-03-01 16:22:29 +01:00
Reinier Balt
1e84adc91b get tests running and fix editing context state 2013-03-01 16:22:29 +01:00
Reinier Balt
99eed9f638 add state machine to context including a closed state 2013-03-01 16:22:29 +01:00
Katrina Owen
8f42b25e68 Use lowest tag count as minimum 2013-02-28 23:36:08 -05:00
Katrina Owen
d478efdd01 Move font calculation into tag cloud 2013-02-28 22:30:34 -05:00
Katrina Owen
61e04a8258 Extract methods in tag cloud
This gets rid of the compute method, and makes each value that got set
in it its own little method.
2013-02-28 21:53:19 -05:00
Katrina Owen
447178bd7d Collapse duplication in tag cloud model 2013-02-28 21:30:36 -05:00
Katrina Owen
edc793e703 Rename variables
The current user isn't necessarily current when it is in the model
layer.

The exposed attributes on the tag cloud no longer need to contain type
information.
2013-02-28 21:18:00 -05:00
Katrina Owen
8f6d57014a Extract tag cloud class from stats controller 2013-02-28 21:08:48 -05:00
Reinier Balt
ef91dd0c64 another set of dynamic finder migrations. All non-cucumber tests pass 2013-02-27 11:50:49 +01:00
Katrina Owen
0b733b6183 Override #to_s on Tag for simplified joining 2013-02-19 08:47:47 -07:00
Matt Rogers
01b7f78f3c Merge pull request #152 from kytrinyx/after-destroy-destroy
Rename callback for clarity
2013-02-19 07:15:07 -08:00
Katrina Owen
bb88674856 Rename callback for clarity 2013-02-19 07:54:09 -07:00
Katrina Owen
95a4ed6e4a Add Tag#label method 2013-02-18 15:12:53 -07:00
Reinier Balt
6fa70db39e fix updating dependency trees when changin a name. Including invalidating cache when
necessary
2013-02-17 17:37:44 +01:00
Reinier Balt
bd656ee1c7 fix #1350 by removing admin_email from preferences model and add it as a site option in
site.yml.tmpl. This one needs running migrations
2012-12-23 21:03:37 +01:00
Reinier Balt
5454ba385f fix styling of error messages 2012-12-16 15:20:43 +01:00
Dan Rice
5b6cbf566a Don't sort todos when counting them
Grouping isn't as lax in PostgreSQL as it is in MySQL or SQLite. All
sort fields also need to be in the GROUP BY, or be aggregated. The order
isn't relevant when counting, so simply don't order in that case.

Fix #1336
2012-10-04 10:43:22 -04:00