diff --git a/_static/coalitions_demo.js b/_static/coalitions_demo.js index 7846d1b..21cab25 100644 --- a/_static/coalitions_demo.js +++ b/_static/coalitions_demo.js @@ -146,10 +146,6 @@ function updatePastOffers(newPastOffers) { } else { cell.innerHTML = offer.allocations[i] } - if (i === js_vars.my_id - 1) { - cell.style.fontWeight = 'bold'; - cell.style.color = '#056fb7'; - } } for (let i = 0; i < allocationDropdowns.length; i++) { diff --git a/_static/live_bargaining.js b/_static/live_bargaining.js index b17a65a..be3faf4 100644 --- a/_static/live_bargaining.js +++ b/_static/live_bargaining.js @@ -73,15 +73,15 @@ for (let i = 0; i < numPlayers; i++) { function sendOffer() { if (!lastPlayerIsDummy && totalSharedValue > 0 && !isMemberCheckboxes[0].checked) { - openPopup(`Invalid proposal: the budget is zero when Player ${player_names['P1']} is not included in the group`, 'error'); + openPopup(`Invalid proposal: the group budget is zero when Player ${player_names['P1']} is not included`, 'error'); return; } if (lastPlayerIsDummy && totalSharedValue > 0 && !(isMemberCheckboxes[0].checked && isMemberCheckboxes[1].checked)) { - openPopup(`Invalid proposal: the budget is zero when Players ${player_names['P1']} and ${player_names['P2']} are not included in the group`, 'error'); + openPopup(`Invalid proposal: the group budget is zero when Players ${player_names['P1']} and ${player_names['P2']} are not included`, 'error'); return; } if (totalSharedValue > totalShareableValue) { - openPopup('Invalid proposal: total amount exceeds the budget available to this group', 'error'); + openPopup('Invalid proposal: total amount exceeds the group budget', 'error'); return; } for (let i = 0; i < numPlayers; i++) { diff --git a/_static/proposal_demo.js b/_static/proposal_demo.js index 86b001c..c747ffa 100644 --- a/_static/proposal_demo.js +++ b/_static/proposal_demo.js @@ -96,11 +96,11 @@ function sendOffer() { }; if (!lastPlayerIsDummy && totalSharedValue > 0 && !isMemberCheckboxes[0].checked) { - openPopup(`Invalid proposal: the budget is zero when Player ${player_names['P1']} is not included in the group`, 'error'); + openPopup(`Invalid proposal: the group budget is zero when Player ${player_names['P1']} is not included`, 'error'); return; } if (lastPlayerIsDummy && totalSharedValue > 0 && !(isMemberCheckboxes[0].checked && isMemberCheckboxes[1].checked)) { - openPopup(`Invalid proposal: the budget is zero when Players ${player_names['P1']} and ${player_names['P2']} are not included in the group`, 'error'); + openPopup(`Invalid proposal: the group budget is zero when Players ${player_names['P1']} and ${player_names['P2']} are not included`, 'error'); return; } if (totalSharedValue > totalShareableValue) { diff --git a/introduction/Coalitions.html b/introduction/Coalitions.html index e2d2d0c..a820374 100644 --- a/introduction/Coalitions.html +++ b/introduction/Coalitions.html @@ -15,7 +15,7 @@
- During the five minutes of discussion and bargaining you can change which proposal you currently accept any number of task-submit-preferred.
+ During the five minutes of discussion and bargaining you can change which proposal you currently accept any number of times.
At the end of the five minutes, everyone's currently accepted proposal becomes final.
The "Currently accepted proposal" interface for this is shown below. You can see which proposal ID each player currently accepts (or whether they reject all, by choosing "—").
In the row below you see which payoffs these choices would lead to.
@@ -26,6 +26,7 @@ As an illustration, suppose you are Player {{player_name}} Please perform the following tasks:
- You can form a group with as many of these players as you like. The group will receive a budget which can be distributed freely among its group members.
+ You can form a group with one or both of these players. The group will receive a budget which can be distributed freely among its group members.
The size of the budget depends on the size of the group and who is in the group (more details on this on the next page).
On this page, we explain how the budget of a group is determined and how you can make a proposal. On this page, we explain how the group budget is determined and how you can make a proposal.
You and the two other players will each be randomly assigned a player role ({{P1}}, {{P2}}, {{P3}}).
- The player roles will be reshuffled each round.
+ The player roles will be reassigned each round.
@@ -33,7 +33,7 @@
A group needs to include Players {{P1}} and {{P2}} to receive a budget of CHF {{grand_coalition_value}}.
- The group's budget does not depend on Player {{P3}}'s inclusion. They can still be included in any group.
+ The group budget does not depend on Player {{P3}}'s inclusion. They can still be included in any group.
As an illustration, suppose you are Player {{player_name}} (the proposal options are the same no matter the role). To become more familiar with the interface, we ask you to complete the following small exercise:
For each of the criteria below, make a proposal that satisfies it.
@@ -112,7 +113,7 @@ Accepting proposals
Try it yourself
All proposals
@@ -154,9 +155,9 @@ ID
From
- {{P1}}
- {{P2}}
- {{P3}}
+ {{P1}}
+ {{P2}}
+ {{P3}}
Currently accepted proposal
- Player {{P1}}
- Player {{P2}}
- Player {{P3}}
+ Player {{P1}}
+ Player {{P2}}
+ Player {{P3}}
Accepted proposal ID
diff --git a/introduction/Instructions.html b/introduction/Instructions.html
index 8ba327f..67cf9cb 100644
--- a/introduction/Instructions.html
+++ b/introduction/Instructions.html
@@ -10,7 +10,7 @@
Group budgets
Group budgets
Past proposals
Try it yourself
Group budgets
Group members
-
Group's budget
+ Group budget
Group members
-
Group's budget
+ Group budget
Preference questions
Neutral
Agree
Strongly agree
- Prefer not to say
+ No opinion
{{ for field in form }}
diff --git a/survey/__init__.py b/survey/__init__.py
index b09033b..923a968 100644
--- a/survey/__init__.py
+++ b/survey/__init__.py
@@ -130,7 +130,7 @@ class Player(BasePlayer):
"Medium difficulty",
"Difficult",
"Very difficult",
- "Prefer not to say",
+ "No opinion",
],
label="How would you rate the difficulty level of the game?",
widget=widgets.RadioSelectHorizontal,
@@ -142,7 +142,7 @@ class Player(BasePlayer):
"Neutral",
"Well",
"Very well",
- "Prefer not to say",
+ "No opinion",
],
label="How well was the game explained?",
widget=widgets.RadioSelectHorizontal,
@@ -154,7 +154,7 @@ class Player(BasePlayer):
"Neutral",
"Well",
"Very well",
- "Prefer not to say",
+ "No opinion",
],
label="How well could you work with the bargaining interface?",
widget=widgets.RadioSelectHorizontal,
@@ -166,7 +166,7 @@ class Player(BasePlayer):
"Just right",
"Too much",
"Way too much",
- "Prefer not to say",
+ "No opinion",
],
label="Did you feel there was enough time for the bargaining?",
widget=widgets.RadioSelectHorizontal,
@@ -189,7 +189,7 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
label="If adding player X to a group never increases the budget, player X should get nothing. ",
widget=widgets.RadioSelectHorizontal,
@@ -202,7 +202,7 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
label="If adding player X to a group always has the same impact on the budget as adding player Y, then player X and player Y should get the same payoff.",
widget=widgets.RadioSelectHorizontal,
@@ -215,7 +215,7 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
label="The payoffs at the end of a bargaining round should always add up to the biggest possible budget (100 CHF). ",
widget=widgets.RadioSelectHorizontal,
@@ -228,9 +228,9 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
- label="Suppose in round 3 the budget each group (out of the three players) can get is the sum of the budget it can get in round 1 and 2. Then the payoff of player X should the be the sum of the payoff player X got in round 1 and 2.",
+ label="Suppose in round 3 the group budgets are the sum of the group budgets in round 1 and 2 for any group. Then the payoff of player X should the be the sum of the payoff player X got in round 1 and 2.",
widget=widgets.RadioSelectHorizontal,
) # type: ignore
@@ -241,9 +241,9 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
- label="Suppose in round 2 each group of players has double the budget they can get in round 1. Then the payoff of player X should be double the amount player X got in round 1.",
+ label="Suppose in round 2 each group budget is twice as large as in in round 1. Then the payoff of player X should be double the amount player X got in round 1.",
widget=widgets.RadioSelectHorizontal,
) # type: ignore
@@ -254,7 +254,7 @@ class Player(BasePlayer):
"Neutral",
"Agree",
"Strongly Agree",
- "Prefer not to say",
+ "No opinion",
],
label="If player X and player Y would have a budget of Z if they formed a group on their own, then the payoffs of player X and Y should be at least Z in total in the final accepted proposal.",
widget=widgets.RadioSelectHorizontal,
diff --git a/survey/tests.py b/survey/tests.py
index 2f72c79..669e3e1 100644
--- a/survey/tests.py
+++ b/survey/tests.py
@@ -23,7 +23,7 @@ def play_round(self):
"symmetry_axiom": "Strongly Agree",
"efficiency_axiom": "Agree",
"linearity_additivity_axiom": "Neutral",
- "linearity_HD1_axiom": "Prefer not to say",
+ "linearity_HD1_axiom": "No opinion",
"stability_axiom": "Disagree",
}
yield Questions, answers