diff --git a/docs/epics/0001_Action_Epic_MVTP.md b/docs/epics/0001_Action_Epic_MVTP.md
index bed01c6b5e5..fef33736f6e 100644
--- a/docs/epics/0001_Action_Epic_MVTP.md
+++ b/docs/epics/0001_Action_Epic_MVTP.md
@@ -111,9 +111,8 @@ their next step is (inputting projects, then waiting for their first action
meeting from their TL), so they feel like their are working toward some kind
of a tangible goal.
-- [ ] When a TM clicks on an invitation link and they _already_ have an
-active account, they'll want to accept the invitation from their dashboard,
-so that they don't have to walk through the new account wizard.
+- [X] When a TM clicks on an invitation link and they _already_ have an
+active account, the system should still process the invitation.
## Team Action Meeting
@@ -166,18 +165,18 @@ update the information they seek.
will want to see a list of projects by TM, so that each participant has a
moment to update the team on their work.
-- [ ] When a TM is asked to give project updates, they will want to know
+- [X] When a TM is asked to give project updates, they will want to know
what to say, so that they understand what is being asked of them.
-- [ ] When a TM is asked to give project updates, they will want to be able
+- [X] When a TM is asked to give project updates, they will want to be able
to make small updates to their projects (such as status, description, or
ownership), so that they can make adjustment to their workload or update
their team with the latest information.
-- [ ] When all project updates are complete, the F will want to advance the
+- [X] When all project updates are complete, the F will want to advance the
meeting to "Agenda Building", so that they keep things moving forward.
-- [ ] When the TMs enter the agenda building phase, they will want to be
+- [X] When the TMs enter the agenda building phase, they will want to be
able to add items to the agenda, so that they get a slot in the meeting to
ask for what they need.
@@ -188,10 +187,18 @@ able to remove items, so they can spend their time on what they want.
advance the meeting to the "Process Agenda" phase, so that new actions and
projects can be created and TMs can request what they need of each other.
-- [ ] If a project update or agenda item should trigger a new agenda item
+- [X] If a project update or agenda item should trigger a new agenda item
for a TM, they want to add it to the agenda, so that they have an opportunity
to get what they need.
+- [ ] When the meeting advances from agenda item to agenda item, the F will
+want to know what to say ("what do you need?") and the TM will want to be
+able to process the agenda item into new projects or actions.
+
+- [ ] When the TM has created a project or action by mistake, the TM will
+want a control for deleting or canceling it, so that they don't add to the
+noise of the team.
+
- [ ] When all agenda items have been processed, the TMs will want one more
opportunity to add new items, so that they have one last chance to process
something before the meeting ends.
@@ -231,7 +238,7 @@ and going.
## Personal Dashboard
-- [ ] When a user receives an invitation to a new team, they will want to
+- [X] When a user receives an invitation to a new team, they will want to
be able to accept it, so that they can join their teammates.
- [X] When a TM navigates to their own personal dashboard, they will
diff --git a/src/server/database/migrations/20160722161700-meeting.js b/src/server/database/migrations/20160722161700-meeting.js
index 3e32c517909..314c7f128fb 100644
--- a/src/server/database/migrations/20160722161700-meeting.js
+++ b/src/server/database/migrations/20160722161700-meeting.js
@@ -1,31 +1,32 @@
exports.up = async (r) => {
const meetingTables = [
- r.tableCreate('Meeting'),
- r.tableCreate('Project'),
r.tableCreate('Action'),
r.tableCreate('AgendaItem'),
+ r.tableCreate('Meeting'),
r.tableCreate('Participant'),
+ r.tableCreate('Project'),
r.tableCreate('Outcome'),
r.tableCreate('TaskOutcomeDiff')
];
await Promise.all(meetingTables);
const meetingIndices = [
- r.table('Meeting').indexCreate('teamId'),
- r.table('Project').indexCreate('teamMemberId'),
r.table('Action').indexCreate('userId'),
r.table('AgendaItem').indexCreate('teamId'),
+ r.table('Meeting').indexCreate('teamId'),
r.table('Participant').indexCreate('meetingId'),
r.table('Participant').indexCreate('userId'),
+ r.table('Project').indexCreate('teamMemberId')
];
return await Promise.all(meetingIndices);
};
exports.down = async (r) => {
const meetingTables = [
- r.tableDrop('Meeting'),
- r.tableDrop('Task'),
+ r.tableDrop('Action'),
r.tableDrop('AgendaItem'),
+ r.tableDrop('Meeting'),
r.tableDrop('Participant'),
+ r.tableDrop('Project'),
r.tableDrop('Outcome'),
r.tableDrop('TaskOutcomeDiff')
];
diff --git a/src/server/graphql/models/Team/teamMutation.js b/src/server/graphql/models/Team/teamMutation.js
index 03e517825df..5e1f8ca239d 100644
--- a/src/server/graphql/models/Team/teamMutation.js
+++ b/src/server/graphql/models/Team/teamMutation.js
@@ -15,9 +15,9 @@ import {
CHECKIN,
LOBBY,
UPDATES,
- FIRST_CALL,
+// FIRST_CALL,
AGENDA_ITEMS,
- LAST_CALL,
+// LAST_CALL,
phaseArray, phaseOrder
} from 'universal/utils/constants';
import {auth0ManagementClient} from 'server/utils/auth0Helpers';
@@ -229,6 +229,7 @@ export default {
teamId: newTeam.id,
userId
};
+
const verifiedTeam = {
...newTeam,
facilitatorPhase: LOBBY,
@@ -238,11 +239,25 @@ export default {
meetingPhaseItem: null,
activeFacilitator: null
};
+
+ const dbTransaction = r.table('User')
+ .get(userId)
+ .do((user) =>
+ r.table('TeamMember').insert({
+ ...verifiedLeader,
+ // pull in picture and preferredName from user profile:
+ picture: user('picture').default(''),
+ preferredName: user('preferredName').default('')
+ })
+ )
+ .do(() =>
+ r.table('Team').insert(verifiedTeam)
+ );
+
const oldtms = authToken.tms || [];
const tms = oldtms.concat(newTeam.id);
const dbPromises = [
- r.table('TeamMember').insert(verifiedLeader),
- r.table('Team').insert(verifiedTeam),
+ dbTransaction,
auth0ManagementClient.users.updateAppMetadata({id: userId}, {tms})
];
await Promise.all(dbPromises);
diff --git a/src/universal/modules/landing/components/Landing/Landing.js b/src/universal/modules/landing/components/Landing/Landing.js
index 02620b169df..aadc011860b 100644
--- a/src/universal/modules/landing/components/Landing/Landing.js
+++ b/src/universal/modules/landing/components/Landing/Landing.js
@@ -40,7 +40,7 @@ export default class Landing extends Component {
Action
- The rhythm of meaningful work.
+ An open-source tool for adaptive teams.