| author | durandn |
| Wed, 02 Mar 2016 10:45:20 +0100 | |
| changeset 8 | e56471e269eb |
| parent 7 | cb21b50b7793 |
| child 9 | fdbc47f06361 |
| permissions | -rw-r--r-- |
|
7
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
1 |
from django.db.models.signals import post_save |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
2 |
from django.dispatch import receiver |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
3 |
from django.contrib.auth import get_user_model |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
4 |
from django.conf import settings |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
5 |
import requests, json |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
6 |
|
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
7 |
@receiver(post_save) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
8 |
def reference_created_renkan(sender, instance, created, **kwargs): |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
9 |
from renkanmanager.models import Renkan |
| 8 | 10 |
if created and sender == Renkan and instance.source_renkan_guid: |
|
7
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
11 |
token_response = requests.post( |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
12 |
settings.MTDC_CLIENT_CREDENTIALS_TOKEN_URL+"?grant_type=client_credentials", |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
13 |
data = {}, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
14 |
headers = { |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
15 |
"Authorization": "Basic %s" % settings.MTDC_AUTH_CODE |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
16 |
} |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
17 |
) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
18 |
if token_response.status_code == 200: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
19 |
token = json.loads(token_response.text)['access_token'] |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
20 |
post_data = json.dumps({ |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
21 |
"userId": instance.creator.id, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
22 |
"title": instance.title |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
23 |
}) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
24 |
reference_response = requests.post( |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
25 |
settings.MTDC_REFERENCE_RESOURCE_BASE_URL+str(instance.renkan_guid), |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
26 |
data = post_data, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
27 |
headers = { |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
28 |
"Authorization": "Bearer %s" % token |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
29 |
} |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
30 |
) |
| 8 | 31 |
""" |
|
7
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
32 |
@receiver(post_save) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
33 |
def reference_modified_title(sender, instance, created, **kwargs): |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
34 |
from renkanmanager.models import Renkan, Revision |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
35 |
if created and sender == Revision: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
36 |
try: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
37 |
referenced_renkan = Renkan.objects.get(renkan_guid = instance.revision_guid) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
38 |
except Renkan.DoesNotExist: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
39 |
return |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
40 |
if referenced_renkan.revision_count > 1: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
41 |
# This means the revision isn't the first of the Renkan and therefore we shouldn't do anything |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
42 |
token_response = requests.post( |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
43 |
settings.MTDC_CLIENT_CREDENTIALS_TOKEN_URL+"?grant_type=client_credentials", |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
44 |
data = {}, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
45 |
headers = { |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
46 |
"Authorization": "Basic %s" % settings.MTDC_AUTH_CODE |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
47 |
} |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
48 |
) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
49 |
if token_response.status_code == 200: |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
50 |
token = json.loads(token_response.text)['access_token'] |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
51 |
put_data = json.dumps({ |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
52 |
"userId": referenced_renkan.creator.id, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
53 |
"title": referenced_renkan.title |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
54 |
}) |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
55 |
reference_response = requests.post( |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
56 |
settings.MTDC_REFERENCE_RESOURCE_BASE_URL+str(instance.renkan_guid), |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
57 |
data = put_data, |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
58 |
headers = { |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
59 |
"Authorization": "Bearer %s" % token |
|
cb21b50b7793
small corrections on oauth server and allauth provider + implemented post_save signals to reference resources into itop ged
durandn
parents:
diff
changeset
|
60 |
} |
| 8 | 61 |
) |
62 |
""" |