Version 51 (modified by jim, 3 years ago) (diff) |
---|
Table of Contents
- Alpha (19 September)
- Beta (? October)
-
Development Log
-
- Notes
- 26 August -- 4 hours spent
- 28 August -- 3h (7h total)
- 29 August -- 4.5h (11.5h total)
- 31 August -- 0.75h (12.25h total)
- 3 September -- 4h (16.25h total)
- 4 September -- 1.5h (17.75)
- Hiatus, retool
- 22 October -- 1 h (1 total)
- 24 October -- 4h (5 total)
- 25 October -- 1h (6 total)
- 3 November -- 5h (11 total)
- 6 November -- 3h (14 total)
- 7 November -- 1.5h (15.5 total)
- 11 November -- 1.5h (15.5 total)
- 12 November -- 1h (16.5 total)
- 13 November -- 5.5...h (22 total)
- 14 November -- ...h (22 total)
-
Development plan & progress log
Alpha (19 September)
Delivers a simple D7 site based on TN's own new distribution and module set, with component/plugabble (initiative) widget system, internationalisation capabilities.
Research tasks
- TODO update IIRS/SolutionDesign
- UNDERWAY: Investigate I18n & related language/internationalisation modules & best practice -- see https://drupal.org/node/133977
- POSTPONED: Resolve tension/shortcoming in nested Drush Makefiles causing module dupes between /profiles/modules and /sites/all/modules - https://drupal.org/node/1006620
- DISCOVER: Investigate content syncing tasks based on Services and Services Client.
Plan
Estimated time in hours in brackets.
- Complete
(2) Build stub code for the CTools content types (panes, workflows) needed to behave as template/documentation source.
- UNDERWAY Build panes for display -- (NOTE http://drupal.stackexchange.com/a/36443/4543 shows how to render a CTools content type on its own):
(1) Listing(1) Search - using geocoder and Viewscurrently listing only, todo map.- (1)
Display item -- will use Teaser view of initiative (ini)is doable directly from CTools/Panels with minimal coding. - (2) Map view -- views based again, using Leaflet or Leaflet Map Box plus IP Geolocation Views and Maps...
- (2) About page/pane - to decide if this is a fieldable panel pane, a node or some included text in module. Ed asked...
- UNDERWAY (5) Get workflow to working state, test -- now need to integrate entry form then am done.
- UNDERWAY (2) Create new CTools content type that wraps the Workflow already built.
- UNDERWAY (2) Make settings form for Workflow plugin, make part of Workflow container settings.
- UNDERWAY (8) Build pages for entry/view and get workflow connected via
- (1) Convert and update Drupal Features and modules.
- (2) Set up test site on Jim's server -- allows us to set up Hybrid Auth social media login
- (3) Create very simple Bootstrap-based theme (little/no customisations)
- (2)
Enable Portuguese & Frensh languages, import language files. - (4) Convert key entry pages from PSE to Panes/CTools Content Types, extending stubs built
- (4) Update all views, panes, features to handle language context.
Other key tasks
- Convert code so far into better structure (core, initiative, registration etc), reusing PSE widget code where possible
- Convert D6 widget modules & features to D7 per updated IIRS/SolutionDesign.
- Add Services and Services Client modules
Nice to haves
These are a secondary goals that are nice to haves, but the IIRS widget with internationalisation and associated (syncing) directory is the primary goal... To do if we have time, Ed to prioritise as needed.
- Create 'Hub Profile' on clone (STG?) of D6 TN.org containins basic text, country, language and widget displays.
- Debug & improve Hub install profile.
- [8] (Ben?) Update widget HTML/CSS/theme as needed.
Beta (? October)
Delivers a cleaned/tweaked up system and some web services connections back to the D6 site, plus an installed and integrated beta website.
- [12] Fix bugs/do tweaks
- [32] Add Services to sync between D6 <--> D7 sites (and future hub sites) with resilient queuing, plugable architecture
- [12] Test, tweak, prep Beta, install, integrate
Subtotal: 6.5 +/- 3 days (= 52 - 76 hrs)
Total: 18.75 +/- 8 days (= 150 - 216 hrs)
NB: from Ed - Jim - your total time budget is 150 hrs. This gives us 3 days with a second programmer in beta phase (agreed as good idea). Bear this in mind!
Development Log
Notes
- Hours in [square brackets] is an estimate, (hours in normal brackets) on done items is time actually spent.
- 21.5 hours already spent on design, meetings and documentation
26 August -- 4 hours spent
- Clone winacc_panpoly distribution repo -> rename to transitionnetwork_d7 - transitionnetwork_d7 repo (1.5 hours)
- Change profile to be TN-focused, include key modules: (1 hours)
- Address, Geofield, geocoder, geophp
- Leaflet
- dnl, i18n
- Set up local development site (1.5 hours).
28 August -- 3h (7h total)
- R&D into
- various aspects: BOA, Leaflet/OpenLayers?, makefiles etc (0.5 hours)
- R&D into internationalisation dnl, i18n (0.5 hours)
- Create Initiative content type with required fields (0.5 hours)
- Create Base and Initiative feature, push to GitHub? (1.5 hours) -- Base repo, Initiative repo
29 August -- 4.5h (11.5h total)
- Social login decided, added to makefile: HybridAuth? Social Login (0.5 hours)
- R&D for user profile modules, added user profile2 module (0.5 hours)
- Ed Mitchell & Jim Kirkpatrick Skype PM/Design/Progress meeting (1 hour)
- Looked into: Countries, Location Taxonomize and decided to KISS for now. (0.25 hours)
- R&D/Decision Made: NO user location-related fields present on basic Drupal account, First, Last & Middle name fields only. ALL location and other features for users will be on Profile2 and defined later. (0.25 hours)
- Added realname and realname_registration to remove need for username on registration (0.25 hours)
- Create User Profile feature (decide approach Profile2 vs core user fields etc) (0.75 hours) -- User repo
- Updated base and user features to include required modules, began Social Login work with Hybrid auth -- will wait until test server setup as oAuth keys etc needed (0.5 hours)
- Investigate I18n & related language/internationalisation modules & best practice -- see https://drupal.org/node/133977 (0.25 so far)
- Resolve tension/shortcoming in nested Drush Makefiles causing module dupes between /profiles/modules and /sites/all/modules - https://drupal.org/node/1006620 (0.25 so far)
31 August -- 0.75h (12.25h total)
- Module & widget design sketching, R&D... Decisions made: (0.25 hours)
- Debug & improve TN D7 Hub install profile. (0.5 hours)
3 September -- 4h (16.25h total)
- Module & widget design sketching, R&D... Decisions made: (3.75 hours)
- Try to use as much of Panels and Page Manager as possible for rendering, building and managing widgets.
- New structure follows;
- Framework = Defines the wrapper, renderer, libraries (CSS, JS) and means of operation of the widget. Frameworks must be able to render the key set of elements that make up a widget. For this project we're only interested in a 'Simple HTML' framework. Future frameworks could include: AJAX HTML, iGoogle, Backbone.js, Angular.js etc.
- Layout = A way of arranging widget components (Panels panes) on the widget. For this project we'll build 'Full page', 'Sidebar' and 'Button only' widget layouts.
- Elements = a chunk of widget that will be delivered by the framework -- the bits a widget is built from with the framework... We need: Container (shows a panels display in iFrame), Modal-container (shows panels display iFrame in popup), Button, Link... More can be added as needed and provided by other modules etc.
- Workflow = A means of linking displays (pages) and processes within the widget together.
- http://drupal.org/project/widgets is no use at all -- good module for in Drupal site widgets, not for generating/rendering those outside.
- Email regarding integration with incumbent/existing sites (0.25 hours)
4 September -- 1.5h (17.75)
- Development Work to create plugins and framework using panels/ctools as base (1 hour)
- Skype with Ed regarding progress and plans (0.5 hours)
Hiatus, retool
Ed moved house, Jim was busy... Lots of thinking happened but not much actual development. Jim is now back and all over this like a {insert suitable simile here}!
22 October -- 1 h (1 total)
- Mild rethink to maximise results, minimise development and aim squarely at the IIRS widget as the MVP. -- DOCS UPDATE PENDING --
- Plan of module & architecture from Drupal/code perspective -- code sketching.
- Decision taken to not include panoply
24 October -- 4h (5 total)
- Ed & Jim project Skype meeting
- Created and enhanced Widgetizer module based on previous code.
- Added new CTools type for 'Combined login/register' pane, (re)using much of PSE code for that.
- Fixed annoying typo/bug preventing Ctools seeing new types.
25 October -- 1h (6 total)
- Added stub Ctools types for entry page for entity... At this point unsure if I'll use the basic/standard Initiative Node form, or a separate form with mapping (per PSE)
3 November -- 5h (11 total)
- R&D: decided CTools multistep form wizard isn't up to the job -- too focused on forms, can't handle multiple steps. Now need to see if a module or interface exists for handling multi pages with workflow type progressions -- Options remaining:
- (original plan) Simple CTools plugin type that allows code to specify steps and criteria
- A panels region that uses position/index of pane to decide position in workflow, or same principle with Page and it variants -- hacky, but might be quick and dirty...
- Another module, TBC.
- Built proximity search based on Geofield and Views -- can search for any postcode/address/city+country the user enters. Ideally add HTML5 geolocation, too -- https://drupal.org/node/2011340
- Now need to make map views --liking the look of https://drupal.org/project/ip_geoloc for searchable map views a LOT.
- Also interesting: https://drupal.org/project/global_filter -- allows a user to set their location ONCE and it be applied to all views needing location henceforth. Hmm..
- Lots of research into possible modules for workflow... Either too specific, not D7, or just not a good fit -- SO, decision made, will write a simple and editable CTools Workflow plugin that can handle our needs.
- Wrote the guts of the Workflow plugin, now is able to handle the pages and route the request accordingly.. Need to add configuration and/or subtypes to allow for each content type to be handled cleanly.
- Primary PoC added to Ini CT.
6 November -- 3h (14 total)
- Got workflow working, can now wrap up the steps required to get a user from login/register -> Submit X content -> Thanks page.
- Started building 'Widget' entity type -- checking whether to use ECK module or just do in code. This will allow the context of the widget (type, owner, language, workflow etc) to be held and new types made.
- Skype with Jim & Ed.
7 November -- 1.5h (15.5 total)
- Hit snags around current planned approach, needs simplifying. Issue is basically that own Widget Instance entity plus separate workflow/framework/container PLUS all the UI stuff... is going to be a LOT of work. So one last change of design is needed to get to an MVP ASAP, whilst being a flexible as possible. Consider issues over weekend and alter tack slightly.
- Question around if Widget instance is even needed? This is the part that might be good if we want to allow lots of users to have widgets AND track them, but for the IIRS needs it's overkill. A better approach will be to put the required variables inside the URL, and use those to pass to the entry workflow and views.
11 November -- 1.5h (15.5 total)
- Played around with Panels Tabs and Panels Ajax Tabs. Neither worked as I'd have liked, but Panels Ajax Tabs has most promise as it lazy-loads the panes as the user changes between them. Quicktabs was used for the PSE but it forces much of the config and choice into code. Hit a bug or two in Panels Ajax Tabs but will try further.
- New, simplified plan is:
- Build an 'Entry' page in panels. The url will be [language]/tn-widgets/entry/user-submit/[step], and the [step] is an argument that will be passed to the Workflow I've already created. [langauge] will be looked after by Drupal.
- Will create a 'Workflow Container' content type that is a pane that has the following settings form:
- Workflow - a select list to pick the appropriate workflow. To start there will be one: user login/reg, submit content, thanks page.
- Step - takes [step] argument from the URL (see above) and passes it to the Workflow module so it knows what step page to show
- Content type - the choice of content to submit for the 2nd step
- Thank you message - A WYSIWYG field that is the thankyou message. Ideally needs to be translatable in the UI.
- Will create an entry panels page with URL [language]/tn-widgets/view/country/[country-code], meaning the [country-code] will be used to do the filtering. Language is separate from country (though connected in real life) and present by the [language] argument.
- The widget container/framework/layout that puts these above two pages into other web pages will remain a CTools plugin, but will need its own UI for getting the widget. I'm looking at modules to do this for me, otherwise I'll re-use the PSE code as much as possible.
12 November -- 1h (16.5 total)
- Quickly converted the PSE to D7 to aid in grabbing/reusing code -- especially around the 'Get Widget' page.
- Reviewed many modules and CTools best practice..
13 November -- 5.5...h (22 total)
- Identified the Multilingual Panels module which solves a big issue... Allows settings for panes (e.g. thank you text) to be translated from within Panels.
- So DECISION MADE
Establish whether to use existing, standard Panels renderer or customise new one for working with Widgets.Will use Multilingual Panels as this has its own renderer. All my rendering will be done by Panels, except the actual output will go into an iFrame provided by the Widget Layout/Framework?.# - Also, DECISION MADE will use use current page manager thus avoiding having to write any UI, just some forms to store config.
- Refactored code to match the above plan.
- Updated plan and log.
- Build Workflow Container and have *almost* got it working exactly as needed. Just need to get the title passed through, and the configuration of the underlying Workflow saved/loaded properly. The admin UI is all groovy though.
14 November -- ...h (22 total)
*