Pluggable events app for Mozilla Webmaker
Перейти к файлу
Hike Danakian 9dac06ed54 Merge branch 'metrics' of github.com:startexploding/webmaker-events into metrics 2013-07-22 19:57:54 -07:00
assets/css Adjusting metrics dashboard style 2013-07-22 19:55:16 -07:00
controllers Add city/country to event during creation/change. 2013-07-22 19:57:50 -07:00
docs modified events API docs 2013-07-22 13:23:39 -07:00
fixtures Better handling of fixtures, drop db before loading initial data. 2013-07-16 04:55:40 -07:00
lib Moved config -> lib and simplified orm/model loading. 2013-07-22 12:06:35 -07:00
migrations Moved config -> lib and simplified orm/model loading. 2013-07-22 12:06:35 -07:00
models Moved config -> lib and simplified orm/model loading. 2013-07-22 12:06:35 -07:00
scripts made fixture conversion script executable 2013-07-22 17:59:35 -07:00
static Add city/country to event during creation/change. 2013-07-22 19:57:50 -07:00
views/events Merge branch 'metrics' of github.com:startexploding/webmaker-events into metrics 2013-07-22 19:57:54 -07:00
.gitignore [bug 890872] Prompt users to sign in to save events 2013-07-10 10:53:49 -04:00
README.md Updated README, includes migration howto. 2013-07-22 18:40:12 -07:00
index.js Moved config -> lib and simplified orm/model loading. 2013-07-22 12:06:35 -07:00
package.json Added city/country metrics. 2013-07-22 09:42:14 -07:00
routes.js Added event metrics route and action. 2013-07-18 16:09:08 -07:00
util.js Cleaned up event controller input filter code. 2013-07-17 01:32:17 -07:00

README.md

webmaker-events

Pluggable events app for Mozilla Webmaker

Integrating into Webmaker

Add the following line to app.js:

require("webmaker-events").init(app, nunjucksEnv, lessMiddleWare, app_root);

where:

  • app is the Express app
  • nunjucksEnv is the nunjucks Environment for adding a custom fileloader before calling nunjucksEnv.express(app)
  • lessMiddleWare is the 'less-middleware' module, for compiling less stylesheets
  • app_root is the root dir for the express app, which is usually __dirname

Add webmaker-events to the dependency list in package.json:

"webmaker-events": "git://github.com/AmoebaConsulting/webmaker-events.git"

See mozilla/webmaker.org for all the changes required to get it working with Webmaker.

Importing Events to Fixtures

Events can be loaded at runtime by placing a JSON file with the Event fixture at fixtures/initial_data.json. This can be generated from the live webmaker events by running:

curl -L https://webmaker.org/events.json | ./scripts/transform_to_fixture.pl > fixtures/initial_data.json

This requires several Perl and several CPAN packages, which can be installed via cpanminus:

curl -L http://cpanmin.us | perl - -S App::cpanminus Modern::Perl JSON JE

Running Database Migrations

Database migrations must be run from within the webmaker.org dir. Assuming webmaker.org and webmaker-events are located in the same parent dir:

cd webmaker.org
foreman run ../webmaker-events/scripts/sequelize -m

To undo the latest migrations:

foreman run ../webmaker-events/scripts/sequelize -mu

If you don't have foreman, you can also try:

. .env
../webmaker-events/scripts/sequelize -m

To fill the city/country fields for Events, you can run the following script:

foreman run ../webmaker-events/scripts/geocode_events.js

To convert the attendee field from the old enum/range format to an average number (this should only be run once):

foreman run ../webmaker-events/scripts/convert_attendees.js

You can run a basic nodeJs repl with the orm loaded via the 'db_shell.js' script:

foreman run ../webmaker-events/scripts/db_shell.js

Known Bugs

  • DateTime fields seem to not work with fixtures loaded into SQLite, when the fixtures where generated from data dumped from a webmaker.org server running mysql (default).