| author | ymh <ymh.work@gmail.com> |
| Tue, 27 Nov 2012 01:48:15 +0100 | |
| changeset 91 | eb2aa2a469e2 |
| parent 83 | 07c9aa7de765 |
| child 95 | c63f2508c34d |
| permissions | -rw-r--r-- |
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
# -*- coding: utf-8 -*- |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
''' |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
Created on Nov 14, 2012 |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
@author: ymh |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
''' |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
|
| 45 | 8 |
from . import settings |
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
from .models import VideoKCRel |
| 45 | 10 |
from .utils import get_all_objects |
11 |
from django import forms |
|
12 |
import logging |
|
| 91 | 13 |
import requests |
| 45 | 14 |
|
15 |
logger = logging.getLogger(__name__) |
|
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
|
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
class VideoKCRelForm(forms.ModelForm): |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
|
|
65
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
19 |
iri_id = forms.CharField(max_length=255, widget=forms.widgets.Select()) |
| 91 | 20 |
project_id = forms.CharField(max_length=255, widget=forms.widgets.Select()) |
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
|
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
def __init__(self, *args, **kwargs): |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
super(VideoKCRelForm, self).__init__(*args, **kwargs) |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
|
| 83 | 25 |
url = settings.LDT_API_URL + "contents/" |
26 |
contents = get_all_objects(url, {'limit':settings.LDT_MAX_FETCH}, 'front_project') |
|
| 45 | 27 |
self.fields['iri_id'].widget.choices = [(content['iri_id'], content['title']) for content in contents] |
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
|
| 83 | 29 |
url = settings.LDT_API_URL + "projects/" |
30 |
projects = get_all_objects(url, {'state': 2, 'limit': settings.LDT_MAX_FETCH}, None) |
|
|
65
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
31 |
logger.debug("projects " + repr(projects)) |
|
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
32 |
values = [(None, "-----")] |
|
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
33 |
values.extend([(project['ldt_id'], project['title']) for project in projects]) |
|
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
34 |
|
|
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
35 |
self.fields['project_id'].widget.choices = values |
| 91 | 36 |
|
37 |
self.fields['content_title'].widget.attrs['readonly'] = True |
|
|
65
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
38 |
|
| 91 | 39 |
def clean_content_title(self): |
40 |
iri_id = self.cleaned_data['iri_id'] |
|
41 |
url = settings.LDT_API_URL + "contents/%s/" % iri_id |
|
42 |
||
43 |
r = requests.get(url) |
|
44 |
if r.status_code != requests.codes.ok: #@UndefinedVariable |
|
45 |
logger.error("Error when requesting contents " + repr(r.status_code) + " : " + repr(r.text)) |
|
46 |
raise forms.ValidationError("Unable to request content %s" % url) |
|
47 |
return r.json.get('title', None) |
|
48 |
||
|
65
6289931858a7
add a project property to override the front project.
ymh <ymh.work@gmail.com>
parents:
45
diff
changeset
|
49 |
|
|
41
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
class Meta: |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
model = VideoKCRel |
|
b6010b3d6ea8
add proxy, model, and correct embed_player
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |