agoraplus: person profession update endpoint (#11078)

This commit is contained in:
Serghei Mihai 2016-05-27 11:55:53 +02:00
parent b5d7172555
commit 036ba4754a
4 changed files with 43 additions and 0 deletions

View File

@ -822,6 +822,28 @@ class AgoraPlus(BaseResource):
raise Exception((res.get('message') or '').encode('utf-8'))
return True
def update_profession(self, login, adult_id, new_profession,
new_pcs, new_employer_name, new_employer_city, new_employer_phone):
family = self.get_agoraplus_family(login)
if not family:
raise ObjectDoesNotExist('no family in Agora+')
# get adult infos
agoraplus_adult_id = self.get_agoraplus_adult_id(adult_id, login)
endpoint = 'familles/%s/representants/%s' % (family['id'], agoraplus_adult_id)
adult_data = self.request(endpoint)
adult_data['employeur'] = new_employer_name
adult_data['telEmployeur'] = new_employer_phone
adult_data['profession'] = new_profession
adult_data['pcs']['id'] = new_pcs['id']
adult_data['adresseEmployeur']['commune'].update({'nom': new_employer_city})
# update adult data
res = self.request(endpoint, json=adult_data, method='PUT')
if res.get('code') != '1':
raise Exception((res.get('message') or '').encode('utf-8'))
return True
def get_invoice_pdf(self, login, invoice_id):
invoices = self.get_invoices(login)
if not invoices:

View File

@ -54,6 +54,9 @@
<li>{% trans 'Update phone number:' %} POST <a href="{% url 'agoraplus-phone-update' slug=object.slug %}"
>{{ site_base_uri }}{% url 'agoraplus-phone-update' slug=object.slug %}?NameID=…</a></li>
— {% trans 'JSON payload: wcs Formdata with Agora+ fields' %}
<li>{% trans 'Update profession:' %} POST <a href="{% url 'agoraplus-profession-update' slug=object.slug %}"
>{{ site_base_uri }}{% url 'agoraplus-profession-update' slug=object.slug %}?NameID=…</a></li>
— {% trans 'JSON payload: wcs Formdata with Agora+ fields' %}
</ul>
<h4>{% trans "Address" %}</h4>

View File

@ -43,6 +43,8 @@ public_urlpatterns = patterns('',
name='agoraplus-auth'),
url(r'^(?P<slug>[\w-]+)/phone/$', PhoneUpdateView.as_view(),
name='agoraplus-phone-update'),
url(r'^(?P<slug>[\w-]+)/profession/$', ProfessionUpdateView.as_view(),
name='agoraplus-profession-update'),
url(r'^(?P<slug>[\w-]+)/reference/(?P<name>[\w-]+)/((?P<reference_id>[\w-]+)/)?$',
ReferenceView.as_view(), name='agoraplus-reference'),

View File

@ -597,3 +597,19 @@ class PhoneUpdateView(PostFormdataView):
new_phone_number, new_cellphone_number)
except ObjectDoesNotExist, e:
raise Http404(e.message)
class ProfessionUpdateView(PostFormdataView):
def post_data(self, formdata):
adult_id = formdata.get('adult').get('id')
new_profession = formdata.get('profession')
new_pcs = formdata.get('pcs')
new_employer_name = formdata.get('employer')
new_employer_city = formdata.get('employer_city')
new_employer_phone = formdata.get('employer_phone')
try:
return self.object.update_profession(self.login, adult_id,
new_profession, new_pcs, new_employer_name,
new_employer_city, new_employer_phone)
except ObjectDoesNotExist, e:
raise Http404(e.message)