74 new_params['module_name'] = "org_admin" |
76 new_params['module_name'] = "org_admin" |
75 new_params['sidebar_grouping'] = 'Organizations' |
77 new_params['sidebar_grouping'] = 'Organizations' |
76 |
78 |
77 new_params['extra_dynaexclude'] = ['agreed_to_tos'] |
79 new_params['extra_dynaexclude'] = ['agreed_to_tos'] |
78 |
80 |
|
81 new_params['create_extra_dynafields'] = { |
|
82 'scope_path': forms.fields.CharField(widget=forms.HiddenInput, |
|
83 required=True), |
|
84 'admin_agreement': forms.fields.CharField(required=False, |
|
85 widget=widgets.AgreementField), |
|
86 'agreed_to_admin_agreement': forms.fields.BooleanField( |
|
87 initial=False, required=True, |
|
88 label=ugettext('I agree to the Admin Agreement')), |
|
89 } |
|
90 |
79 new_params['allow_invites'] = True |
91 new_params['allow_invites'] = True |
80 |
92 |
81 params = dicts.merge(params, new_params) |
93 params = dicts.merge(params, new_params) |
82 |
94 |
83 super(View, self).__init__(params=params) |
95 super(View, self).__init__(params=params) |
86 params['group_view'].registerRole(params['module_name'], self) |
98 params['group_view'].registerRole(params['module_name'], self) |
87 |
99 |
88 # create and store the special form for invited users |
100 # create and store the special form for invited users |
89 updated_fields = { |
101 updated_fields = { |
90 'link_id': forms.CharField(widget=widgets.ReadOnlyInput(), |
102 'link_id': forms.CharField(widget=widgets.ReadOnlyInput(), |
91 required=False)} |
103 required=False), |
|
104 'admin_agreement': forms.fields.Field(required=False, |
|
105 widget=widgets.AgreementField), |
|
106 } |
92 |
107 |
93 invited_create_form = dynaform.extendDynaForm( |
108 invited_create_form = dynaform.extendDynaForm( |
94 dynaform = self._params['create_form'], |
109 dynaform = self._params['create_form'], |
95 dynafields = updated_fields) |
110 dynafields = updated_fields) |
96 |
111 |
97 params['invited_create_form'] = invited_create_form |
112 params['invited_create_form'] = invited_create_form |
98 |
113 |
99 def _editPost(self, request, entity, fields): |
114 def _editPost(self, request, entity, fields): |
100 """See base.View._editPost(). |
115 """See base.View._editPost(). |
101 """ |
116 """ |
|
117 |
102 if not entity: |
118 if not entity: |
103 fields['user'] = fields['link_id'] |
119 fields['user'] = fields['link_id'] |
104 fields['link_id'] = fields['user'].link_id |
120 fields['link_id'] = fields['user'].link_id |
|
121 |
|
122 fields['agreed_to_tos'] = fields['agreed_to_admin_agreement'] |
105 |
123 |
106 super(View, self)._editPost(request, entity, fields) |
124 super(View, self)._editPost(request, entity, fields) |
107 |
125 |
108 def _acceptInvitePost(self, fields, request, context, params, **kwargs): |
126 def _acceptInvitePost(self, fields, request, context, params, **kwargs): |
109 """Fills in the fields that were missing in the invited_created_form. |
127 """Fills in the fields that were missing in the invited_created_form. |
110 |
128 |
111 For params see base.View._acceptInvitePost() |
129 For params see base.View._acceptInvitePost() |
112 """ |
130 """ |
|
131 |
113 # fill in the appropriate fields that were missing in the form |
132 # fill in the appropriate fields that were missing in the form |
114 fields['user'] = fields['link_id'] |
133 fields['user'] = fields['link_id'] |
115 fields['link_id'] = fields['user'].link_id |
134 fields['link_id'] = fields['user'].link_id |
|
135 fields['agreed_to_tos'] = fields['agreed_to_admin_agreement'] |
|
136 |
|
137 def _editGet(self, request, entity, form): |
|
138 """Sets the content of the agreed_to_tos_on field and replaces. |
|
139 |
|
140 Also replaces the agreed_to_tos field with a hidden field when the ToS has been signed. |
|
141 For params see base.View._editGet(). |
|
142 """ |
|
143 |
|
144 if entity.agreed_to_tos: |
|
145 form.fields['agreed_to_admin_agreement'] = forms.fields.BooleanField( |
|
146 widget=forms.HiddenInput, initial=entity.agreed_to_tos, |
|
147 required=True) |
|
148 |
|
149 super(View, self)._editGet(request, entity, form) |
|
150 |
|
151 def _editContext(self, request, context): |
|
152 """See base.View._editContext. |
|
153 """ |
|
154 |
|
155 entity = context['entity'] |
|
156 form = context['form'] |
|
157 |
|
158 if 'scope_path' in form.initial: |
|
159 scope_path = form.initial['scope_path'] |
|
160 elif 'scope_path' in request.POST: |
|
161 # TODO: do this nicely |
|
162 scope_path = request.POST['scope_path'] |
|
163 else: |
|
164 # TODO: is this always sufficient? |
|
165 form.fields['admin_agreement'] = None |
|
166 return |
|
167 |
|
168 entity = org_logic.logic.getFromKeyName(scope_path) |
|
169 |
|
170 if not (entity and entity.scope and entity.scope.org_admin_agreement): |
|
171 return |
|
172 |
|
173 content = entity.scope.org_admin_agreement.content |
|
174 |
|
175 form.fields['admin_agreement'].widget.text = content |
116 |
176 |
117 |
177 |
118 view = View() |
178 view = View() |
119 |
179 |
120 accept_invite = view.acceptInvite |
180 accept_invite = view.acceptInvite |