forked from zbyte64/django-hyperadmin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhyperobjects.py
More file actions
67 lines (53 loc) · 1.81 KB
/
Copy pathhyperobjects.py
File metadata and controls
67 lines (53 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'''
These are objects generated by the resource and are serialized by a media type.
'''
from hyperadmin.links import LinkCollectorMixin, ItemLinkCollectionProvider
class Item(LinkCollectorMixin):
'''
Represents an instance that is bound to an endpoint
'''
form_class = None
link_collector_class = ItemLinkCollectionProvider
def __init__(self, endpoint, instance):
self.endpoint = endpoint
self.instance = instance
self.links = self.get_link_collector()
@property
def state(self):
return self.endpoint.state
def get_absolute_url(self):
return self.endpoint.get_item_url(self)
def get_form_class(self):
if self.form_class is not None:
return self.form_class
return self.endpoint.get_item_form_class()
def get_form_kwargs(self, **kwargs):
kwargs['item'] = self
return self.endpoint.get_item_form_kwargs(**kwargs)
def get_form(self, **form_kwargs):
form_cls = self.get_form_class()
kwargs = self.get_form_kwargs(**form_kwargs)
form = form_cls(**kwargs)
return form
@property
def form(self):
"""
Mediatype uses this form to serialize the result
"""
if not hasattr(self, '_form'):
self._form = self.get_form()
return self._form
def get_prompt(self):
"""
Returns a string representing the item
"""
return self.endpoint.get_item_prompt(self)
def get_resource_items(self):
return [self]
def get_namespaces(self):
"""
Returns namespaces associated with this item
"""
return self.endpoint.get_item_namespaces(item=self)
def get_link(self):
return self.endpoint.get_item_link(item=self)