mirror of https://gitlab.federez.net/re2o/re2o
43 changed files with 7 additions and 27060 deletions
@ -1,696 +0,0 @@ |
|||
# api package |
|||
|
|||
## Submodules |
|||
|
|||
## api.acl module |
|||
|
|||
Defines the ACL for the whole API. |
|||
|
|||
Importing this module, creates the ‘can view api’ permission if not already |
|||
done. |
|||
|
|||
|
|||
### api.acl.can_view(user) |
|||
Check if an user can view the application. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**user** – The user who wants to view the application. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A couple (allowed, msg) where allowed is a boolean which is True if |
|||
viewing is granted and msg is a message (can be None). |
|||
|
|||
|
|||
## api.authentication module |
|||
|
|||
Defines the authentication classes used in the API to authenticate a user. |
|||
|
|||
|
|||
### class api.authentication.ExpiringTokenAuthentication() |
|||
Bases: `rest_framework.authentication.TokenAuthentication` |
|||
|
|||
Authenticate a user if the provided token is valid and not expired. |
|||
|
|||
|
|||
#### authenticate_credentials(key) |
|||
See base class. Add the verification the token is not expired. |
|||
|
|||
## api.pagination module |
|||
|
|||
Defines the pagination classes used in the API to paginate the results. |
|||
|
|||
|
|||
### class api.pagination.PageSizedPagination() |
|||
Bases: `rest_framework.pagination.PageNumberPagination` |
|||
|
|||
Provide the possibility to control the page size by using the |
|||
‘page_size’ parameter. The value ‘all’ can be used for this parameter |
|||
to retrieve all the results in a single page. |
|||
|
|||
|
|||
#### page_size_query_param() |
|||
The string to look for in the parameters of |
|||
a query to get the page_size requested. |
|||
|
|||
|
|||
#### all_pages_strings() |
|||
A set of strings that can be used in the query to |
|||
request all results in a single page. |
|||
|
|||
|
|||
#### max_page_size() |
|||
The maximum number of results a page can output no |
|||
matter what is requested. |
|||
|
|||
|
|||
#### all_pages_strings( = ('all',)) |
|||
|
|||
#### get_page_size(request) |
|||
Retrieve the size of the page according to the parameters of the |
|||
request. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**request** – the request of the user |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A integer between 0 and max_page_size that represent the size |
|||
of the page to use. |
|||
|
|||
|
|||
|
|||
#### max_page_size( = 10000) |
|||
|
|||
#### page_size_query_param( = 'page_size') |
|||
## api.permissions module |
|||
|
|||
Defines the permission classes used in the API. |
|||
|
|||
|
|||
### class api.permissions.ACLPermission() |
|||
Bases: `rest_framework.permissions.BasePermission` |
|||
|
|||
A permission class used to check the ACL to validate the permissions |
|||
of a user. |
|||
|
|||
The view must define a .get_perms_map() or a .perms_map attribute. |
|||
See the wiki for the syntax of this attribute. |
|||
|
|||
|
|||
#### static get_required_permissions(method, view) |
|||
Build the list of permissions required for the request to be |
|||
accepted. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **method** – The HTTP method name used for the request. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The list of ACL functions to apply to a user in order to check |
|||
if he has the right permissions. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
|
|||
* **AssertionError** – None of .get_perms_map() or .perms_map are |
|||
defined in the view. |
|||
|
|||
|
|||
* **rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
#### has_permission(request, view) |
|||
Check that the user has the permissions to perform the request. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **request** – The request performed. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A boolean indicating if the user has the permission to |
|||
perform the request. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
|
|||
* **AssertionError** – None of .get_perms_map() or .perms_map are |
|||
defined in the view. |
|||
|
|||
|
|||
* **rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
### class api.permissions.AutodetectACLPermission() |
|||
Bases: `rest_framework.permissions.BasePermission` |
|||
|
|||
A permission class used to autodetect the ACL needed to validate the |
|||
permissions of a user based on the queryset of the view. |
|||
|
|||
The view must define a .get_queryset() or a .queryset attribute. |
|||
|
|||
|
|||
#### perms_map() |
|||
The mapping of each valid HTTP method to the required |
|||
model-based ACL permissions. |
|||
|
|||
|
|||
#### perms_obj_map() |
|||
The mapping of each valid HTTP method to the required |
|||
object-based ACL permissions. |
|||
|
|||
|
|||
#### get_required_object_permissions(method, obj) |
|||
Build the list of object-based permissions required for the |
|||
request to be accepted. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **method** – The HTTP method name used for the request. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The list of ACL functions to apply to a user in order to check |
|||
if he has the right permissions. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
#### get_required_permissions(method, model) |
|||
Build the list of model-based permissions required for the |
|||
request to be accepted. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **method** – The HTTP method name used for the request. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The list of ACL functions to apply to a user in order to check |
|||
if he has the right permissions. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
#### has_object_permission(request, view, obj) |
|||
Check that the user has the object-based permissions to perform |
|||
the request. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **request** – The request performed. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A boolean indicating if the user has the permission to |
|||
perform the request. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
#### has_permission(request, view) |
|||
Check that the user has the model-based permissions to perform |
|||
the request. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **request** – The request performed. |
|||
|
|||
|
|||
* **view** – The view which is responding to the request. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A boolean indicating if the user has the permission to |
|||
perform the request. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
|
|||
* **AssertionError** – None of .get_queryset() or .queryset are |
|||
defined in the view. |
|||
|
|||
|
|||
* **rest_framework.exception.MethodNotAllowed** – The requested method |
|||
is not allowed for this view. |
|||
|
|||
|
|||
|
|||
#### perms_map( = {'DELETE': [], 'GET': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'HEAD': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'OPTIONS': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'PATCH': [], 'POST': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'PUT': []}) |
|||
|
|||
#### perms_obj_map( = {'DELETE': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'GET': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'HEAD': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'OPTIONS': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'PATCH': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>], 'POST': [], 'PUT': [<function can_see_api>, <function AutodetectACLPermission.<lambda>>]}) |
|||
|
|||
### api.permissions.can_see_api(\*_, \*\*__) |
|||
Check if a user can view the API. |
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A function that takes a user as an argument and returns |
|||
an ACL tuple that assert this user can see the API. |
|||
|
|||
|
|||
## api.routers module |
|||
|
|||
Defines the custom routers to generate the URLs of the API. |
|||
|
|||
|
|||
### class api.routers.AllViewsRouter(\*args, \*\*kwargs) |
|||
Bases: `rest_framework.routers.DefaultRouter` |
|||
|
|||
A router that can register both viewsets and views and generates |
|||
a full API root page with all the generated URLs. |
|||
|
|||
|
|||
#### get_api_root_view(schema_urls=None, api_urls=None) |
|||
Create a class-based view to use as the API root. |
|||
|
|||
Highly inspired by the base class. See details on the implementation |
|||
in the base class. The only difference is that registered view URLs |
|||
are added after the registered viewset URLs on this root API page. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**schema_urls** – A schema to use for the URLs. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The view to use to display the root API page. |
|||
|
|||
|
|||
|
|||
#### static get_default_name(pattern) |
|||
Returns the name to use for the route if none was specified. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**pattern** – The pattern for this route. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The name to use for this route. |
|||
|
|||
|
|||
|
|||
#### get_urls() |
|||
Builds the list of URLs to register. |
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A list of the URLs generated based on the viewsets registered |
|||
followed by the URLs generated based on the views registered. |
|||
|
|||
|
|||
|
|||
#### register_view(pattern, view, name=None) |
|||
Register a view in the router. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **pattern** – The URL pattern to use for this view. |
|||
|
|||
|
|||
* **view** – The class-based view to register. |
|||
|
|||
|
|||
* **name** – An optional name for the route generated. Defaults is |
|||
based on the pattern last section (delimited by ‘/’). |
|||
|
|||
|
|||
|
|||
#### register_viewset(\*args, \*\*kwargs) |
|||
Register a viewset in the router. Alias of register for |
|||
convenience. |
|||
|
|||
See register in the base class for details. |
|||
|
|||
## api.serializers module |
|||
|
|||
Defines the serializers of the API |
|||
|
|||
|
|||
### class api.serializers.NamespacedHIField(view_name=None, \*\*kwargs) |
|||
Bases: `rest_framework.relations.HyperlinkedIdentityField` |
|||
|
|||
A rest_framework.serializers.HyperlinkedIdentityField subclass to |
|||
automatically prefix view names with teh API namespace. |
|||
|
|||
|
|||
### class api.serializers.NamespacedHMSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `rest_framework.serializers.HyperlinkedModelSerializer` |
|||
|
|||
A rest_framework.serializers.HyperlinkedModelSerializer subclass to |
|||
automatically prefix view names with the API namespace. |
|||
|
|||
|
|||
#### serializer_related_field() |
|||
alias of `NamespacedHRField` |
|||
|
|||
|
|||
#### serializer_url_field() |
|||
alias of `NamespacedHIField` |
|||
|
|||
|
|||
### class api.serializers.NamespacedHRField(view_name=None, \*\*kwargs) |
|||
Bases: `rest_framework.relations.HyperlinkedRelatedField` |
|||
|
|||
A rest_framework.serializers.HyperlinkedRelatedField subclass to |
|||
automatically prefix view names with the API namespace. |
|||
|
|||
## api.settings module |
|||
|
|||
Settings specific to the API. |
|||
|
|||
## api.tests module |
|||
|
|||
Defines the test suite for the API |
|||
|
|||
|
|||
### class api.tests.APIEndpointsTestCase(methodName='runTest') |
|||
Bases: `rest_framework.test.APITestCase` |
|||
|
|||
Test case to test that all endpoints are reachable with respects to |
|||
authentication and permission checks. |
|||
|
|||
|
|||
#### no_auth_endpoints() |
|||
A list of endpoints that should be reachable |
|||
without authentication. |
|||
|
|||
|
|||
#### auth_no_perm_endpoints() |
|||
A list of endpoints that should be reachable |
|||
when being authenticated but without permissions. |
|||
|
|||
|
|||
#### auth_perm_endpoints() |
|||
A list of endpoints that should be reachable |
|||
when being authenticated and having the correct permissions. |
|||
|
|||
|
|||
#### stduser() |
|||
A standard user with no permission used for the tests and |
|||
initialized at the beggining of this test case. |
|||
|
|||
|
|||
#### superuser() |
|||
A superuser (with all permissions) used for the tests and |
|||
initialized at the beggining of this test case. |
|||
|
|||
|
|||
#### auth_no_perm_endpoints( = []) |
|||
|
|||
#### auth_perm_endpoints( = ['/api/cotisations/article/', '/api/cotisations/article/1/', '/api/cotisations/banque/', '/api/cotisations/banque/1/', '/api/cotisations/cotisation/', '/api/cotisations/cotisation/1/', '/api/cotisations/facture/', '/api/cotisations/facture/1/', '/api/cotisations/paiement/', '/api/cotisations/paiement/1/', '/api/cotisations/vente/', '/api/cotisations/vente/1/', '/api/machines/domain/', '/api/machines/domain/1/', '/api/machines/extension/', '/api/machines/extension/1/', '/api/machines/interface/', '/api/machines/interface/1/', '/api/machines/iplist/', '/api/machines/iplist/1/', '/api/machines/iptype/', '/api/machines/iptype/1/', '/api/machines/ipv6list/', '/api/machines/ipv6list/1/', '/api/machines/machine/', '/api/machines/machine/1/', '/api/machines/machinetype/', '/api/machines/machinetype/1/', '/api/machines/mx/', '/api/machines/mx/1/', '/api/machines/nas/', '/api/machines/nas/1/', '/api/machines/ns/', '/api/machines/ns/1/', '/api/machines/ouvertureportlist/', '/api/machines/ouvertureportlist/1/', '/api/machines/ouvertureport/', '/api/machines/ouvertureport/1/', '/api/machines/servicelink/', '/api/machines/servicelink/1/', '/api/machines/service/', '/api/machines/service/1/', '/api/machines/soa/', '/api/machines/soa/1/', '/api/machines/srv/', '/api/machines/srv/1/', '/api/machines/txt/', '/api/machines/txt/1/', '/api/machines/vlan/', '/api/machines/vlan/1/', '/api/preferences/optionaluser/', '/api/preferences/optionalmachine/', '/api/preferences/optionaltopologie/', '/api/preferences/generaloption/', '/api/preferences/service/', '/api/preferences/service/1/', '/api/preferences/assooption/', '/api/preferences/homeoption/', '/api/preferences/mailmessageoption/', '/api/topologie/acesspoint/', '/api/topologie/acesspoint/2/', '/api/topologie/building/', '/api/topologie/building/1/', '/api/topologie/constructorswitch/', '/api/topologie/constructorswitch/1/', '/api/topologie/modelswitch/', '/api/topologie/modelswitch/1/', '/api/topologie/room/', '/api/topologie/room/1/', '/api/topologie/server/', '/api/topologie/server/3/', '/api/topologie/stack/', '/api/topologie/stack/1/', '/api/topologie/switch/', '/api/topologie/switch/4/', '/api/topologie/switchbay/', '/api/topologie/switchbay/1/', '/api/topologie/switchport/', '/api/topologie/switchport/1/', '/api/topologie/switchport/2/', '/api/topologie/switchport/3/', '/api/users/adherent/', '/api/users/adherent/3/', '/api/users/ban/', '/api/users/ban/1/', '/api/users/club/', '/api/users/club/4/', '/api/users/listright/', '/api/users/school/', '/api/users/school/1/', '/api/users/serviceuser/', '/api/users/serviceuser/1/', '/api/users/shell/', '/api/users/shell/1/', '/api/users/user/', '/api/users/user/1/', '/api/users/whitelist/', '/api/users/whitelist/1/', '/api/dns/zones/', '/api/dhcp/hostmacip/', '/api/mailing/standard', '/api/mailing/club', '/api/services/regen/']) |
|||
|
|||
#### check_responses_code(urls, expected_code, formats=None, assert_more=None) |
|||
Utility function to test if a list of urls answer an expected code. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **urls** – The list of urls to test |
|||
|
|||
|
|||
* **expected_code** – The HTTP return code expected |
|||
|
|||
|
|||
* **formats** – The list of formats to use for the request. Default is to |
|||
only test None format. |
|||
|
|||
|
|||
* **assert_more** – An optional function to assert more specific data in |
|||
the same test. The response object, the url and the format |
|||
used are passed as arguments. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
|
|||
* **AssertionError** – The response got did not have the expected status |
|||
code. |
|||
|
|||
|
|||
* **Any exception raised in the evalutation of assert_more.** – |
|||
|
|||
|
|||
|
|||
#### no_auth_endpoints( = ['/api/']) |
|||
|
|||
#### not_found_endpoints( = ['/api/cotisations/article/4242/', '/api/cotisations/banque/4242/', '/api/cotisations/cotisation/4242/', '/api/cotisations/facture/4242/', '/api/cotisations/paiement/4242/', '/api/cotisations/vente/4242/', '/api/machines/domain/4242/', '/api/machines/extension/4242/', '/api/machines/interface/4242/', '/api/machines/iplist/4242/', '/api/machines/iptype/4242/', '/api/machines/ipv6list/4242/', '/api/machines/machine/4242/', '/api/machines/machinetype/4242/', '/api/machines/mx/4242/', '/api/machines/nas/4242/', '/api/machines/ns/4242/', '/api/machines/ouvertureportlist/4242/', '/api/machines/ouvertureport/4242/', '/api/machines/servicelink/4242/', '/api/machines/service/4242/', '/api/machines/soa/4242/', '/api/machines/srv/4242/', '/api/machines/txt/4242/', '/api/machines/vlan/4242/', '/api/preferences/service/4242/', '/api/topologie/acesspoint/4242/', '/api/topologie/building/4242/', '/api/topologie/constructorswitch/4242/', '/api/topologie/modelswitch/4242/', '/api/topologie/room/4242/', '/api/topologie/server/4242/', '/api/topologie/stack/4242/', '/api/topologie/switch/4242/', '/api/topologie/switchbay/4242/', '/api/topologie/switchport/4242/', '/api/users/adherent/4242/', '/api/users/ban/4242/', '/api/users/club/4242/', '/api/users/listright/4242/', '/api/users/school/4242/', '/api/users/serviceuser/4242/', '/api/users/shell/4242/', '/api/users/user/4242/', '/api/users/whitelist/4242/']) |
|||
|
|||
#### classmethod setUpTestData() |
|||
Load initial data for the TestCase |
|||
|
|||
|
|||
#### stduser( = None) |
|||
|
|||
#### superuser( = None) |
|||
|
|||
#### test_auth_endpoints_with_auth_and_perm() |
|||
Tests that every endpoint that does require to be authenticated, |
|||
returns a Ok (200) response when authenticated with all permissions. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 200 status code. |
|||
|
|||
|
|||
|
|||
#### test_auth_endpoints_with_no_auth() |
|||
Tests that every endpoint that does require to be authenticated, |
|||
returns a Unauthorized (401) response when not authenticated. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 401 status code. |
|||
|
|||
|
|||
|
|||
#### test_auth_no_perm_endpoints_with_auth_and_no_perm() |
|||
Tests that every endpoint that does require to be authenticated and |
|||
no special permissions, returns a Ok (200) response when authenticated |
|||
but without permissions. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 200 status code. |
|||
|
|||
|
|||
|
|||
#### test_auth_perm_endpoints_with_auth_and_no_perm() |
|||
Tests that every endpoint that does require to be authenticated and |
|||
special permissions, returns a Forbidden (403) response when |
|||
authenticated but without permissions. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 403 status code. |
|||
|
|||
|
|||
|
|||
#### test_endpoints_not_found() |
|||
Tests that every endpoint that uses a primary key parameter, |
|||
returns a Not Found (404) response when queried with non-existing |
|||
primary key. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 404 status code. |
|||
|
|||
|
|||
|
|||
#### test_formats() |
|||
Tests that every endpoint returns a Ok (200) response when using |
|||
different formats. Also checks that ‘json’ format returns a valid |
|||
JSON object. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 200 status code. |
|||
|
|||
|
|||
|
|||
#### test_no_auth_endpoints_with_auth() |
|||
Tests that every endpoint that does not require to be |
|||
authenticated, returns a Ok (200) response when authenticated. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 200 status code. |
|||
|
|||
|
|||
|
|||
#### test_no_auth_endpoints_with_no_auth() |
|||
Tests that every endpoint that does not require to be |
|||
authenticated, returns a Ok (200) response when not authenticated. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have a 200 status code. |
|||
|
|||
|
|||
|
|||
### class api.tests.APIPaginationTestCase(methodName='runTest') |
|||
Bases: `rest_framework.test.APITestCase` |
|||
|
|||
Test case to check that the pagination is used on all endpoints that |
|||
should use it. |
|||
|
|||
|
|||
#### endpoints() |
|||
A list of endpoints that should use the pagination. |
|||
|
|||
|
|||
#### superuser() |
|||
A superuser used in the tests to access the endpoints. |
|||
|
|||
|
|||
#### endpoints( = ['/api/cotisations/article/', '/api/cotisations/banque/', '/api/cotisations/cotisation/', '/api/cotisations/facture/', '/api/cotisations/paiement/', '/api/cotisations/vente/', '/api/machines/domain/', '/api/machines/extension/', '/api/machines/interface/', '/api/machines/iplist/', '/api/machines/iptype/', '/api/machines/ipv6list/', '/api/machines/machine/', '/api/machines/machinetype/', '/api/machines/mx/', '/api/machines/nas/', '/api/machines/ns/', '/api/machines/ouvertureportlist/', '/api/machines/ouvertureport/', '/api/machines/servicelink/', '/api/machines/service/', '/api/machines/soa/', '/api/machines/srv/', '/api/machines/txt/', '/api/machines/vlan/', '/api/preferences/service/', '/api/topologie/acesspoint/', '/api/topologie/building/', '/api/topologie/constructorswitch/', '/api/topologie/modelswitch/', '/api/topologie/room/', '/api/topologie/server/', '/api/topologie/stack/', '/api/topologie/switch/', '/api/topologie/switchbay/', '/api/topologie/switchport/', '/api/users/adherent/', '/api/users/ban/', '/api/users/club/', '/api/users/listright/', '/api/users/school/', '/api/users/serviceuser/', '/api/users/shell/', '/api/users/user/', '/api/users/whitelist/', '/api/dns/zones/', '/api/dhcp/hostmacip/', '/api/mailing/standard', '/api/mailing/club', '/api/services/regen/']) |
|||
|
|||
#### classmethod setUpTestData() |
|||
Load initial data for the TestCase |
|||
|
|||
|
|||
#### superuser( = None) |
|||
|
|||
#### classmethod tearDownClass() |
|||
Hook method for deconstructing the class fixture after running all tests in the class. |
|||
|
|||
|
|||
#### test_pagination() |
|||
Tests that every endpoint is using the pagination correctly. |
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**AssertionError** – An endpoint did not have one the following keyword |
|||
in the JSOn response: ‘count’, ‘next’, ‘previous’, ‘results’ |
|||
or more that 100 results were returned. |
|||
|
|||
|
|||
## api.urls module |
|||
|
|||
Defines the URLs of the API |
|||
|
|||
A custom router is used to register all the routes. That allows to register |
|||
all the URL patterns from the viewsets as a standard router but, the views |
|||
can also be register. That way a complete API root page presenting all URLs |
|||
can be generated automatically. |
|||
|
|||
## api.views module |
|||
|
|||
Defines the views of the API |
|||
|
|||
All views inherits the rest_framework.views.APIview to respect the |
|||
REST API requirements such as dealing with HTTP status code, format of |
|||
the response (JSON or other), the CSRF exempting, … |
|||
|
|||
|
|||
### class api.views.ObtainExpiringAuthToken(\*\*kwargs) |
|||
Bases: `rest_framework.authtoken.views.ObtainAuthToken` |
|||
|
|||
Exposes a view to obtain a authentication token. |
|||
|
|||
This view as the same behavior as the |
|||
rest_framework.auth_token.views.ObtainAuthToken view except that the |
|||
expiration time is send along with the token as an addtional information. |
|||
|
|||
|
|||
#### post(request, \*args, \*\*kwargs) |
|||
## Module contents |
|||
@ -1,293 +0,0 @@ |
|||
# cotisations.api package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.api.serializers module |
|||
|
|||
|
|||
### class cotisations.api.serializers.ArticleSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Article objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'prix', 'duration', 'type_user', 'type_cotisation', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Article` |
|||
|
|||
|
|||
### class cotisations.api.serializers.BanqueSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Banque objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Banque` |
|||
|
|||
|
|||
### class cotisations.api.serializers.BaseInvoiceSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = '__all__') |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.BaseInvoice` |
|||
|
|||
|
|||
### class cotisations.api.serializers.CotisationSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Cotisation objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('vente', 'type_cotisation', 'date_start', 'date_end', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Cotisation` |
|||
|
|||
|
|||
### class cotisations.api.serializers.FactureSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Facture objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'paiement', 'banque', 'cheque', 'date', 'valid', 'control', 'prix_total', 'name', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Facture` |
|||
|
|||
|
|||
### class cotisations.api.serializers.PaiementSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Paiement objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('moyen', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Paiement` |
|||
|
|||
|
|||
### class cotisations.api.serializers.ReminderSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `rest_framework.serializers.ModelSerializer` |
|||
|
|||
Serialize the data about a reminder |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('days', 'message', 'users_to_remind')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.Reminder` |
|||
|
|||
|
|||
### class cotisations.api.serializers.ReminderUsersSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `users.api.serializers.UserSerializer` |
|||
|
|||
Serialize the data about a mailing member. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `users.api.serializers.UserSerializer.Meta` |
|||
|
|||
|
|||
#### fields( = ('get_full_name', 'get_mail')) |
|||
|
|||
### class cotisations.api.serializers.VenteSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize cotisations.models.Vente objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('facture', 'number', 'name', 'prix', 'duration', 'type_cotisation', 'prix_total', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Vente` |
|||
|
|||
## cotisations.api.urls module |
|||
|
|||
## cotisations.api.views module |
|||
|
|||
|
|||
### class cotisations.api.views.ArticleViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Article objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.ArticleSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class cotisations.api.views.BanqueViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Banque objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.BanqueSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class cotisations.api.views.CotisationViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Cotisation objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.CotisationSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class cotisations.api.views.FactureViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Facture objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.BaseInvoiceSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class cotisations.api.views.PaiementViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Paiement objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.PaiementSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class cotisations.api.views.ReminderView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.ListAPIView` |
|||
|
|||
Output for users to remind an end of their subscription. |
|||
|
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.ReminderSerializer` |
|||
|
|||
|
|||
### class cotisations.api.views.VenteViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of cotisations.models.Vente objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `cotisations.api.serializers.VenteSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
## Module contents |
|||
@ -1,439 +0,0 @@ |
|||
# cotisations.migrations package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.migrations.0001_initial module |
|||
|
|||
|
|||
### class cotisations.migrations.0001_initial.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0005_auto_20160702_0006')]) |
|||
|
|||
#### operations( = [<CreateModel name='Article', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('prix', <django.db.models.fields.DecimalField>)]>, <CreateModel name='Banque', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>)]>, <CreateModel name='Facture', fields=[('id', <django.db.models.fields.AutoField>), ('cheque', <django.db.models.fields.CharField>), ('number', <django.db.models.fields.IntegerField>), ('date', <django.db.models.fields.DateTimeField>), ('name', <django.db.models.fields.CharField>), ('prix', <django.db.models.fields.DecimalField>), ('article', <django.db.models.fields.related.ForeignKey>), ('banque', <django.db.models.fields.related.ForeignKey>)]>, <CreateModel name='Paiement', fields=[('id', <django.db.models.fields.AutoField>), ('moyen', <django.db.models.fields.CharField>)]>, <AddField model_name='facture', name='paiement', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='facture', name='user', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## cotisations.migrations.0002_remove_facture_article module |
|||
|
|||
|
|||
### class cotisations.migrations.0002_remove_facture_article.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0001_initial')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='facture', name='article'>]) |
|||
## cotisations.migrations.0003_auto_20160702_1448 module |
|||
|
|||
|
|||
### class cotisations.migrations.0003_auto_20160702_1448.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0002_remove_facture_article')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='banque', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## cotisations.migrations.0004_auto_20160702_1528 module |
|||
|
|||
|
|||
### class cotisations.migrations.0004_auto_20160702_1528.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0003_auto_20160702_1448')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='facture', name='prix', field=<django.db.models.fields.DecimalField>>]) |
|||
## cotisations.migrations.0005_auto_20160702_1532 module |
|||
|
|||
|
|||
### class cotisations.migrations.0005_auto_20160702_1532.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0004_auto_20160702_1528')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='cheque', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0006_auto_20160702_1534 module |
|||
|
|||
|
|||
### class cotisations.migrations.0006_auto_20160702_1534.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0005_auto_20160702_1532')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='facture', name='prix', field=<django.db.models.fields.DecimalField>>]) |
|||
## cotisations.migrations.0007_auto_20160702_1543 module |
|||
|
|||
|
|||
### class cotisations.migrations.0007_auto_20160702_1543.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0006_auto_20160702_1534')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='name', field=<django.db.models.fields.CharField>, preserve_default=False>, <AlterField model_name='facture', name='prix', field=<django.db.models.fields.DecimalField>, preserve_default=False>]) |
|||
## cotisations.migrations.0008_auto_20160702_1614 module |
|||
|
|||
|
|||
### class cotisations.migrations.0008_auto_20160702_1614.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0005_auto_20160702_0006'), ('cotisations', '0007_auto_20160702_1543')]) |
|||
|
|||
#### operations( = [<CreateModel name='Cotisation', fields=[('id', <django.db.models.fields.AutoField>), ('date_start', <django.db.models.fields.DateTimeField>), ('date_end', <django.db.models.fields.DateTimeField>)]>, <AddField model_name='article', name='cotisation', field=<django.db.models.fields.BooleanField>, preserve_default=False>, <AddField model_name='article', name='duration', field=<django.db.models.fields.DurationField>>, <AddField model_name='facture', name='valid', field=<django.db.models.fields.BooleanField>>, <AddField model_name='cotisation', name='facture', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='cotisation', name='user', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## cotisations.migrations.0009_remove_cotisation_user module |
|||
|
|||
|
|||
### class cotisations.migrations.0009_remove_cotisation_user.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0008_auto_20160702_1614')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='cotisation', name='user'>]) |
|||
## cotisations.migrations.0010_auto_20160702_1840 module |
|||
|
|||
|
|||
### class cotisations.migrations.0010_auto_20160702_1840.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0009_remove_cotisation_user')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='article', name='duration'>, <AddField model_name='article', name='duration', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0011_auto_20160702_1911 module |
|||
|
|||
|
|||
### class cotisations.migrations.0011_auto_20160702_1911.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0010_auto_20160702_1840')]) |
|||
|
|||
#### operations( = [<AlterField model_name='cotisation', name='date_start', field=<django.db.models.fields.DateTimeField>>]) |
|||
## cotisations.migrations.0012_auto_20160704_0118 module |
|||
|
|||
|
|||
### class cotisations.migrations.0012_auto_20160704_0118.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0011_auto_20160702_1911')]) |
|||
|
|||
#### operations( = [<AlterField model_name='cotisation', name='facture', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## cotisations.migrations.0013_auto_20160711_2240 module |
|||
|
|||
|
|||
### class cotisations.migrations.0013_auto_20160711_2240.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0012_auto_20160704_0118')]) |
|||
|
|||
#### operations( = [<CreateModel name='Vente', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('prix', <django.db.models.fields.DecimalField>), ('cotisation', <django.db.models.fields.BooleanField>), ('duration', <django.db.models.fields.IntegerField>)]>, <RemoveField model_name='facture', name='name'>, <RemoveField model_name='facture', name='prix'>, <AddField model_name='vente', name='facture', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## cotisations.migrations.0014_auto_20160712_0245 module |
|||
|
|||
|
|||
### class cotisations.migrations.0014_auto_20160712_0245.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0013_auto_20160711_2240')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='facture', name='number'>, <AddField model_name='vente', name='number', field=<django.db.models.fields.IntegerField>, preserve_default=False>]) |
|||
## cotisations.migrations.0015_auto_20160714_2142 module |
|||
|
|||
|
|||
### class cotisations.migrations.0015_auto_20160714_2142.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0014_auto_20160712_0245')]) |
|||
|
|||
#### operations( = [<AddField model_name='facture', name='control', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='cotisation', name='facture', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='vente', name='facture', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='vente', name='number', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0016_auto_20160715_0110 module |
|||
|
|||
|
|||
### class cotisations.migrations.0016_auto_20160715_0110.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0015_auto_20160714_2142')]) |
|||
|
|||
#### operations( = [<RenameField model_name='article', old_name='cotisation', new_name='iscotisation'>, <RenameField model_name='vente', old_name='cotisation', new_name='iscotisation'>, <RemoveField model_name='cotisation', name='facture'>, <AddField model_name='cotisation', name='vente', field=<django.db.models.fields.related.OneToOneField>, preserve_default=False>]) |
|||
## cotisations.migrations.0017_auto_20170718_2329 module |
|||
|
|||
|
|||
### class cotisations.migrations.0017_auto_20170718_2329.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0016_auto_20160715_0110')]) |
|||
|
|||
#### operations( = [<AlterField model_name='article', name='duration', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='article', name='name', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0018_paiement_type_paiement module |
|||
|
|||
|
|||
### class cotisations.migrations.0018_paiement_type_paiement.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0017_auto_20170718_2329')]) |
|||
|
|||
#### operations( = [<AddField model_name='paiement', name='type_paiement', field=<django.db.models.fields.CharField>, preserve_default=False>]) |
|||
## cotisations.migrations.0019_auto_20170819_0055 module |
|||
|
|||
|
|||
### class cotisations.migrations.0019_auto_20170819_0055.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0018_paiement_type_paiement')]) |
|||
|
|||
#### operations( = [<AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0020_auto_20170819_0057 module |
|||
|
|||
|
|||
### class cotisations.migrations.0020_auto_20170819_0057.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0019_auto_20170819_0055')]) |
|||
|
|||
#### operations( = [<AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0021_auto_20170819_0104 module |
|||
|
|||
|
|||
### class cotisations.migrations.0021_auto_20170819_0104.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0020_auto_20170819_0057')]) |
|||
|
|||
#### operations( = [<AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0022_auto_20170824_0128 module |
|||
|
|||
|
|||
### class cotisations.migrations.0022_auto_20170824_0128.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0021_auto_20170819_0104')]) |
|||
|
|||
#### operations( = [<AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0023_auto_20170902_1303 module |
|||
|
|||
|
|||
### class cotisations.migrations.0023_auto_20170902_1303.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0022_auto_20170824_0128')]) |
|||
|
|||
#### operations( = [<AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.IntegerField>>]) |
|||
## cotisations.migrations.0024_auto_20171015_2033 module |
|||
|
|||
|
|||
### class cotisations.migrations.0024_auto_20171015_2033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0023_auto_20170902_1303')]) |
|||
|
|||
#### operations( = [<AlterField model_name='article', name='duration', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='vente', name='duration', field=<django.db.models.fields.PositiveIntegerField>>]) |
|||
## cotisations.migrations.0025_article_type_user module |
|||
|
|||
|
|||
### class cotisations.migrations.0025_article_type_user.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0024_auto_20171015_2033')]) |
|||
|
|||
#### operations( = [<AddField model_name='article', name='type_user', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0026_auto_20171028_0126 module |
|||
|
|||
|
|||
### class cotisations.migrations.0026_auto_20171028_0126.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0025_article_type_user')]) |
|||
|
|||
#### operations( = [<AddField model_name='article', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AddField model_name='cotisation', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AddField model_name='vente', name='type_cotisation', field=<django.db.models.fields.CharField>>, <RunPython <function create_type>, <function delete_type>>, <RemoveField model_name='article', name='iscotisation'>, <RemoveField model_name='vente', name='iscotisation'>]) |
|||
|
|||
### cotisations.migrations.0026_auto_20171028_0126.create_type(apps, schema_editor) |
|||
|
|||
### cotisations.migrations.0026_auto_20171028_0126.delete_type(apps, schema_editor) |
|||
## cotisations.migrations.0027_auto_20171029_1156 module |
|||
|
|||
|
|||
### class cotisations.migrations.0027_auto_20171029_1156.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0026_auto_20171028_0126')]) |
|||
|
|||
#### operations( = [<AlterField model_name='article', name='name', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0028_auto_20171231_0007 module |
|||
|
|||
|
|||
### class cotisations.migrations.0028_auto_20171231_0007.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0027_auto_20171029_1156')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='article', options={'permissions': (('view_article', 'Peut voir un objet article'),)}>, <AlterModelOptions name='banque', options={'permissions': (('view_banque', 'Peut voir un objet banque'),)}>, <AlterModelOptions name='cotisation', options={'permissions': (('view_cotisation', 'Peut voir un objet cotisation'), ('change_all_cotisation', 'Superdroit, peut modifier toutes les cotisations'))}>, <AlterModelOptions name='facture', options={'permissions': (('change_facture_control', "Peut changer l'etat de controle"), ('change_facture_pdf', 'Peut éditer une facture pdf'), ('view_facture', 'Peut voir un objet facture'), ('change_all_facture', 'Superdroit, peut modifier toutes les factures'))}>, <AlterModelOptions name='paiement', options={'permissions': (('view_paiement', 'Peut voir un objet paiement'),)}>, <AlterModelOptions name='vente', options={'permissions': (('view_vente', 'Peut voir un objet vente'), ('change_all_vente', 'Superdroit, peut modifier toutes les ventes'))}>]) |
|||
## cotisations.migrations.0029_auto_20180414_2056 module |
|||
|
|||
|
|||
### class cotisations.migrations.0029_auto_20180414_2056.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0028_auto_20171231_0007')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='article', options={'permissions': (('view_article', "Can see an article's details"),), 'verbose_name': 'Article', 'verbose_name_plural': 'Articles'}>, <AlterModelOptions name='banque', options={'permissions': (('view_banque', "Can see a bank's details"),), 'verbose_name': 'Bank', 'verbose_name_plural': 'Banks'}>, <AlterModelOptions name='cotisation', options={'permissions': (('view_cotisation', "Can see a cotisation's details"), ('change_all_cotisation', 'Can edit the previous cotisations'))}>, <AlterModelOptions name='facture', options={'permissions': (('change_facture_control', 'Can change the "controlled" state'), ('change_facture_pdf', 'Can create a custom PDF invoice'), ('view_facture', "Can see an invoice's details"), ('change_all_facture', 'Can edit all the previous invoices')), 'verbose_name': 'Invoice', 'verbose_name_plural': 'Invoices'}>, <AlterModelOptions name='paiement', options={'permissions': (('view_paiement', "Can see a payement's details"),), 'verbose_name': 'Payment method', 'verbose_name_plural': 'Payment methods'}>, <AlterModelOptions name='vente', options={'permissions': (('view_vente', "Can see a purchase's details"), ('change_all_vente', 'Can edit all the previous purchases')), 'verbose_name': 'Purchase', 'verbose_name_plural': 'Purchases'}>, <AlterField model_name='article', name='duration', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='article', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='article', name='prix', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='article', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AlterField model_name='article', name='type_user', field=<django.db.models.fields.CharField>>, <AlterField model_name='banque', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='cotisation', name='date_end', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='cotisation', name='date_start', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='cotisation', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AlterField model_name='cotisation', name='vente', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='facture', name='cheque', field=<django.db.models.fields.CharField>>, <AlterField model_name='facture', name='control', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='facture', name='date', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='facture', name='valid', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='paiement', name='moyen', field=<django.db.models.fields.CharField>>, <AlterField model_name='paiement', name='type_paiement', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='vente', name='duration', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='vente', name='facture', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='vente', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='vente', name='number', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='vente', name='prix', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='vente', name='type_cotisation', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0030_custom_payment module |
|||
|
|||
|
|||
### class cotisations.migrations.0030_custom_payment.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('preferences', '0044_remove_payment_pass'), ('cotisations', '0029_auto_20180414_2056')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='paiement', options={'permissions': (('view_paiement', "Can see a payement's details"), ('use_every_payment', 'Can use every payement')), 'verbose_name': 'Payment method', 'verbose_name_plural': 'Payment methods'}>, <AlterModelOptions name='article', options={'permissions': (('view_article', "Can see an article's details"), ('buy_every_article', 'Can buy every_article')), 'verbose_name': 'Article', 'verbose_name_plural': 'Articles'}>, <AddField model_name='paiement', name='available_for_everyone', field=<django.db.models.fields.BooleanField>>, <AddField model_name='paiement', name='is_balance', field=<django.db.models.fields.BooleanField>>, <AddField model_name='article', name='available_for_everyone', field=<django.db.models.fields.BooleanField>>, <CreateModel name='ChequePayment', fields=[('id', <django.db.models.fields.AutoField>), ('payment', <django.db.models.fields.related.OneToOneField>)], bases=(<class 'cotisations.payment_methods.mixins.PaymentMethodMixin'>, <class 'django.db.models.base.Model'>), options={'verbose_name': 'Cheque'}>, <CreateModel name='ComnpayPayment', fields=[('id', <django.db.models.fields.AutoField>), ('payment_credential', <django.db.models.fields.CharField>), ('payment_pass', <re2o.aes_field.AESEncryptedField>), ('payment', <django.db.models.fields.related.OneToOneField>), ('minimum_payment', <django.db.models.fields.DecimalField>)], bases=(<class 'cotisations.payment_methods.mixins.PaymentMethodMixin'>, <class 'django.db.models.base.Model'>), options={'verbose_name': 'ComNpay'}>, <CreateModel name='BalancePayment', fields=[('id', <django.db.models.fields.AutoField>), ('minimum_balance', <django.db.models.fields.DecimalField>), ('payment', <django.db.models.fields.related.OneToOneField>), ('maximum_balance', <django.db.models.fields.DecimalField>), ('credit_balance_allowed', <django.db.models.fields.BooleanField>)], bases=(<class 'cotisations.payment_methods.mixins.PaymentMethodMixin'>, <class 'django.db.models.base.Model'>), options={'verbose_name': 'User Balance'}>, <RunPython <function add_comnpay>>, <RunPython <function add_cheque>>, <RunPython <function add_solde>>, <RemoveField model_name='paiement', name='type_paiement'>]) |
|||
|
|||
### cotisations.migrations.0030_custom_payment.add_cheque(apps, schema_editor) |
|||
|
|||
### cotisations.migrations.0030_custom_payment.add_comnpay(apps, schema_editor) |
|||
|
|||
### cotisations.migrations.0030_custom_payment.add_solde(apps, schema_editor) |
|||
## cotisations.migrations.0031_comnpaypayment_production module |
|||
|
|||
|
|||
### class cotisations.migrations.0031_comnpaypayment_production.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0030_custom_payment')]) |
|||
|
|||
#### operations( = [<AddField model_name='comnpaypayment', name='production', field=<django.db.models.fields.BooleanField>>]) |
|||
## cotisations.migrations.0032_custom_invoice module |
|||
|
|||
|
|||
### class cotisations.migrations.0032_custom_invoice.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0031_comnpaypayment_production')]) |
|||
|
|||
#### operations( = [<CreateModel name='BaseInvoice', fields=[('id', <django.db.models.fields.AutoField>), ('date', <django.db.models.fields.DateTimeField>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 're2o.field_permissions.FieldPermissionModelMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='CustomInvoice', fields=[('baseinvoice_ptr', <django.db.models.fields.related.OneToOneField>), ('recipient', <django.db.models.fields.CharField>), ('payment', <django.db.models.fields.CharField>), ('address', <django.db.models.fields.CharField>), ('paid', <django.db.models.fields.BooleanField>)], bases=('cotisations.baseinvoice',), options={'permissions': (('view_custominvoice', 'Can view a custom invoice'),)}>, <AddField model_name='facture', name='baseinvoice_ptr', field=<django.db.models.fields.related.OneToOneField>, preserve_default=False>, <RunPython <function reattribute_ids>>, <AlterField model_name='vente', name='facture', field=<django.db.models.fields.related.ForeignKey>>, <RemoveField model_name='facture', name='id'>, <RemoveField model_name='facture', name='date'>, <AlterField model_name='facture', name='baseinvoice_ptr', field=<django.db.models.fields.related.OneToOneField>>, <RunPython <function update_rights>>, <AlterModelOptions name='facture', options={'permissions': (('change_facture_control', 'Can change the "controlled" state'), ('view_facture', "Can see an invoice's details"), ('change_all_facture', 'Can edit all the previous invoices')), 'verbose_name': 'Invoice', 'verbose_name_plural': 'Invoices'}>]) |
|||
|
|||
### cotisations.migrations.0032_custom_invoice.reattribute_ids(apps, schema_editor) |
|||
|
|||
### cotisations.migrations.0032_custom_invoice.update_rights(apps, schema_editor) |
|||
## cotisations.migrations.0033_auto_20180818_1319 module |
|||
|
|||
|
|||
### class cotisations.migrations.0033_auto_20180818_1319.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0032_custom_invoice')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='article', options={'permissions': (('view_article', 'Can view an article object'), ('buy_every_article', 'Can buy every article')), 'verbose_name': 'article', 'verbose_name_plural': 'articles'}>, <AlterModelOptions name='balancepayment', options={'verbose_name': 'user balance'}>, <AlterModelOptions name='banque', options={'permissions': (('view_banque', 'Can view a bank object'),), 'verbose_name': 'bank', 'verbose_name_plural': 'banks'}>, <AlterModelOptions name='cotisation', options={'permissions': (('view_cotisation', 'Can view a subscription object'), ('change_all_cotisation', 'Can edit the previous subscriptions')), 'verbose_name': 'subscription', 'verbose_name_plural': 'subscriptions'}>, <AlterModelOptions name='custominvoice', options={'permissions': (('view_custominvoice', 'Can view a custom invoice object'),)}>, <AlterModelOptions name='facture', options={'permissions': (('change_facture_control', 'Can edit the "controlled" state'), ('view_facture', 'Can view an invoice object'), ('change_all_facture', 'Can edit all the previous invoices')), 'verbose_name': 'invoice', 'verbose_name_plural': 'invoices'}>, <AlterModelOptions name='paiement', options={'permissions': (('view_paiement', 'Can view a payment method object'), ('use_every_payment', 'Can use every payment method')), 'verbose_name': 'payment method', 'verbose_name_plural': 'payment methods'}>, <AlterModelOptions name='vente', options={'permissions': (('view_vente', 'Can view a purchase object'), ('change_all_vente', 'Can edit all the previous purchases')), 'verbose_name': 'purchase', 'verbose_name_plural': 'purchases'}>, <AlterField model_name='article', name='available_for_everyone', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='article', name='duration', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='article', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='article', name='prix', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='article', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AlterField model_name='article', name='type_user', field=<django.db.models.fields.CharField>>, <AlterField model_name='banque', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='comnpaypayment', name='payment_credential', field=<django.db.models.fields.CharField>>, <AlterField model_name='comnpaypayment', name='payment_pass', field=<re2o.aes_field.AESEncryptedField>>, <AlterField model_name='comnpaypayment', name='production', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='cotisation', name='date_end', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='cotisation', name='date_start', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='cotisation', name='type_cotisation', field=<django.db.models.fields.CharField>>, <AlterField model_name='cotisation', name='vente', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='facture', name='cheque', field=<django.db.models.fields.CharField>>, <AlterField model_name='facture', name='control', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='facture', name='valid', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='paiement', name='available_for_everyone', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='paiement', name='is_balance', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='paiement', name='moyen', field=<django.db.models.fields.CharField>>, <AlterField model_name='vente', name='duration', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='vente', name='facture', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='vente', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='vente', name='number', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='vente', name='prix', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='vente', name='type_cotisation', field=<django.db.models.fields.CharField>>]) |
|||
## cotisations.migrations.0034_auto_20180831_1532 module |
|||
|
|||
|
|||
### class cotisations.migrations.0034_auto_20180831_1532.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0033_auto_20180818_1319')]) |
|||
|
|||
#### operations( = [<AlterField model_name='facture', name='valid', field=<django.db.models.fields.BooleanField>>]) |
|||
## cotisations.migrations.0035_notepayment module |
|||
|
|||
|
|||
### class cotisations.migrations.0035_notepayment.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0034_auto_20180831_1532')]) |
|||
|
|||
#### operations( = [<CreateModel name='NotePayment', fields=[('id', <django.db.models.fields.AutoField>), ('server', <django.db.models.fields.CharField>), ('port', <django.db.models.fields.PositiveIntegerField>), ('id_note', <django.db.models.fields.PositiveIntegerField>), ('payment', <django.db.models.fields.related.OneToOneField>)], options={'verbose_name': 'NoteKfet'}, bases=(<class 'cotisations.payment_methods.mixins.PaymentMethodMixin'>, <class 'django.db.models.base.Model'>)>]) |
|||
## cotisations.migrations.0036_custominvoice_remark module |
|||
|
|||
|
|||
### class cotisations.migrations.0036_custominvoice_remark.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0035_notepayment')]) |
|||
|
|||
#### operations( = [<AddField model_name='custominvoice', name='remark', field=<django.db.models.fields.TextField>>]) |
|||
## cotisations.migrations.0037_costestimate module |
|||
|
|||
|
|||
### class cotisations.migrations.0037_costestimate.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0036_custominvoice_remark')]) |
|||
|
|||
#### operations( = [<CreateModel name='CostEstimate', fields=[('custominvoice_ptr', <django.db.models.fields.related.OneToOneField>), ('validity', <django.db.models.fields.DurationField>), ('final_invoice', <django.db.models.fields.related.ForeignKey>)], options={'permissions': (('view_costestimate', 'Can view a cost estimate object'),)}, bases=('cotisations.custominvoice',)>]) |
|||
## cotisations.migrations.0038_auto_20181231_1657 module |
|||
|
|||
|
|||
### class cotisations.migrations.0038_auto_20181231_1657.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0037_costestimate')]) |
|||
|
|||
#### operations( = [<AlterField model_name='costestimate', name='final_invoice', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='costestimate', name='validity', field=<django.db.models.fields.DurationField>>, <AlterField model_name='custominvoice', name='paid', field=<django.db.models.fields.BooleanField>>]) |
|||
## cotisations.migrations.0039_freepayment module |
|||
|
|||
|
|||
### class cotisations.migrations.0039_freepayment.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0038_auto_20181231_1657')]) |
|||
|
|||
#### operations( = [<CreateModel name='FreePayment', fields=[('id', <django.db.models.fields.AutoField>), ('payment', <django.db.models.fields.related.OneToOneField>)], options={'verbose_name': 'Free payment'}, bases=(<class 'cotisations.payment_methods.mixins.PaymentMethodMixin'>, <class 'django.db.models.base.Model'>)>]) |
|||
## cotisations.migrations.0040_auto_20191002_2335 module |
|||
|
|||
|
|||
### class cotisations.migrations.0040_auto_20191002_2335.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0039_freepayment')]) |
|||
|
|||
#### operations( = [<AddField model_name='article', name='duration_days', field=<django.db.models.fields.PositiveIntegerField>>, <AddField model_name='vente', name='duration_days', field=<django.db.models.fields.PositiveIntegerField>>]) |
|||
## cotisations.migrations.0041_auto_20191103_2131 module |
|||
|
|||
|
|||
### class cotisations.migrations.0041_auto_20191103_2131.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0040_auto_20191002_2335')]) |
|||
|
|||
#### operations( = [<AlterField model_name='balancepayment', name='payment', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='chequepayment', name='payment', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='comnpaypayment', name='payment', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='freepayment', name='payment', field=<django.db.models.fields.related.OneToOneField>>, <AlterField model_name='notepayment', name='payment', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## cotisations.migrations.0042_auto_20191120_0159 module |
|||
|
|||
|
|||
### class cotisations.migrations.0042_auto_20191120_0159.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('cotisations', '0041_auto_20191103_2131')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='chequepayment', options={'verbose_name': 'cheque'}>, <AlterField model_name='balancepayment', name='credit_balance_allowed', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='balancepayment', name='maximum_balance', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='balancepayment', name='minimum_balance', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='baseinvoice', name='date', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='comnpaypayment', name='minimum_payment', field=<django.db.models.fields.DecimalField>>, <AlterField model_name='comnpaypayment', name='production', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='costestimate', name='validity', field=<django.db.models.fields.DurationField>>, <AlterField model_name='custominvoice', name='address', field=<django.db.models.fields.CharField>>, <AlterField model_name='custominvoice', name='paid', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='custominvoice', name='payment', field=<django.db.models.fields.CharField>>, <AlterField model_name='custominvoice', name='recipient', field=<django.db.models.fields.CharField>>, <AlterField model_name='custominvoice', name='remark', field=<django.db.models.fields.TextField>>]) |
|||
## Module contents |
|||
@ -1,83 +0,0 @@ |
|||
# cotisations.payment_methods.balance package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.balance.models module |
|||
|
|||
|
|||
### class cotisations.payment_methods.balance.models.BalancePayment(\*args, \*\*kwargs) |
|||
Bases: `cotisations.payment_methods.mixins.PaymentMethodMixin`, `django.db.models.base.Model` |
|||
|
|||
The model allowing you to pay with a cheque. |
|||
|
|||
|
|||
#### exception DoesNotExist() |
|||
Bases: `django.core.exceptions.ObjectDoesNotExist` |
|||
|
|||
|
|||
#### exception MultipleObjectsReturned() |
|||
Bases: `django.core.exceptions.MultipleObjectsReturned` |
|||
|
|||
|
|||
#### alter_payment(payment) |
|||
Register the payment as a balance payment. |
|||
|
|||
|
|||
#### can_credit_balance(user_request) |
|||
|
|||
#### check_price(price, user, \*args, \*\*kwargs) |
|||
Checks that the price meets the requirement to be paid with user |
|||
balance. |
|||
|
|||
|
|||
#### credit_balance_allowed() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Changes the user’s balance to pay the invoice. If it is not |
|||
possible, shows an error and invalidates the invoice. |
|||
|
|||
|
|||
#### id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### maximum_balance() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### minimum_balance() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### objects( = <django.db.models.manager.Manager object>) |
|||
|
|||
#### payment() |
|||
Accessor to the related object on the forward side of a one-to-one relation. |
|||
|
|||
In the example: |
|||
|
|||
``` |
|||
class Restaurant(Model): |
|||
place = OneToOneField(Place, related_name='restaurant') |
|||
``` |
|||
|
|||
`restaurant.place` is a `ForwardOneToOneDescriptor` instance. |
|||
|
|||
|
|||
#### payment_id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### valid_form(form) |
|||
Checks that there is not already a balance payment method. |
|||
|
|||
## Module contents |
|||
|
|||
This module contains a method to pay online using user balance. |
|||
@ -1,89 +0,0 @@ |
|||
# cotisations.payment_methods.cheque package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.cheque.forms module |
|||
|
|||
|
|||
### class cotisations.payment_methods.cheque.forms.InvoiceForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None) |
|||
Bases: `re2o.mixins.FormRevMixin`, `django.forms.models.ModelForm` |
|||
|
|||
A simple form to get the bank a the cheque number. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ['banque', 'cheque']) |
|||
|
|||
#### model() |
|||
alias of `cotisations.models.Facture` |
|||
|
|||
|
|||
#### base_fields( = {'banque': <django.forms.models.ModelChoiceField object>, 'cheque': <django.forms.fields.CharField object>}) |
|||
|
|||
#### declared_fields( = {}) |
|||
|
|||
#### property media() |
|||
## cotisations.payment_methods.cheque.models module |
|||
|
|||
|
|||
### class cotisations.payment_methods.cheque.models.ChequePayment(\*args, \*\*kwargs) |
|||
Bases: `cotisations.payment_methods.mixins.PaymentMethodMixin`, `django.db.models.base.Model` |
|||
|
|||
The model allowing you to pay with a cheque. |
|||
|
|||
|
|||
#### exception DoesNotExist() |
|||
Bases: `django.core.exceptions.ObjectDoesNotExist` |
|||
|
|||
|
|||
#### exception MultipleObjectsReturned() |
|||
Bases: `django.core.exceptions.MultipleObjectsReturned` |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Invalidates the invoice then redirect the user towards a view asking |
|||
for informations to add to the invoice before validating it. |
|||
|
|||
|
|||
#### id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### objects( = <django.db.models.manager.Manager object>) |
|||
|
|||
#### payment() |
|||
Accessor to the related object on the forward side of a one-to-one relation. |
|||
|
|||
In the example: |
|||
|
|||
``` |
|||
class Restaurant(Model): |
|||
place = OneToOneField(Place, related_name='restaurant') |
|||
``` |
|||
|
|||
`restaurant.place` is a `ForwardOneToOneDescriptor` instance. |
|||
|
|||
|
|||
#### payment_id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
## cotisations.payment_methods.cheque.urls module |
|||
|
|||
## cotisations.payment_methods.cheque.views module |
|||
|
|||
Payment |
|||
|
|||
Here are defined some views dedicated to cheque payement. |
|||
|
|||
|
|||
### cotisations.payment_methods.cheque.views.cheque(request, invoice_pk) |
|||
This view validate an invoice with the data from a cheque. |
|||
|
|||
## Module contents |
|||
|
|||
This module contains a method to pay online using cheque. |
|||
@ -1,126 +0,0 @@ |
|||
# cotisations.payment_methods.comnpay package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.comnpay.comnpay module |
|||
|
|||
cotisations.payment_utils.comnpay |
|||
The module in charge of handling the negociation with Comnpay |
|||
for online payment |
|||
|
|||
|
|||
### class cotisations.payment_methods.comnpay.comnpay.Transaction(vad_number='', secret_key='', urlRetourOK='', urlRetourNOK='', urlIPN='', source='', typeTr='D') |
|||
Bases: `object` |
|||
|
|||
The class representing a transaction with all the functions |
|||
used during the negociation |
|||
|
|||
|
|||
#### buildSecretHTML(produit='Produit', montant='0.00', idTransaction='') |
|||
Build an HTML hidden form with the different parameters for the |
|||
transaction |
|||
|
|||
|
|||
#### static validSec(values, secret_key) |
|||
Check if the secret value is correct |
|||
|
|||
## cotisations.payment_methods.comnpay.models module |
|||
|
|||
|
|||
### class cotisations.payment_methods.comnpay.models.ComnpayPayment(\*args, \*\*kwargs) |
|||
Bases: `cotisations.payment_methods.mixins.PaymentMethodMixin`, `django.db.models.base.Model` |
|||
|
|||
The model allowing you to pay with COMNPAY. |
|||
|
|||
|
|||
#### exception DoesNotExist() |
|||
Bases: `django.core.exceptions.ObjectDoesNotExist` |
|||
|
|||
|
|||
#### exception MultipleObjectsReturned() |
|||
Bases: `django.core.exceptions.MultipleObjectsReturned` |
|||
|
|||
|
|||
#### check_price(price, \*args, \*\*kwargs) |
|||
Checks that the price meets the requirement to be paid with ComNpay. |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Build a request to start the negociation with Comnpay by using |
|||
a facture id, the price and the secret transaction data stored in |
|||
the preferences. |
|||
|
|||
|
|||
#### id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### minimum_payment() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### objects( = <django.db.models.manager.Manager object>) |
|||
|
|||
#### payment() |
|||
Accessor to the related object on the forward side of a one-to-one relation. |
|||
|
|||
In the example: |
|||
|
|||
``` |
|||
class Restaurant(Model): |
|||
place = OneToOneField(Place, related_name='restaurant') |
|||
``` |
|||
|
|||
`restaurant.place` is a `ForwardOneToOneDescriptor` instance. |
|||
|
|||
|
|||
#### payment_credential() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### payment_id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### payment_pass() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### production() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### return_url_comnpay() |
|||
## cotisations.payment_methods.comnpay.urls module |
|||
|
|||
## cotisations.payment_methods.comnpay.views module |
|||
|
|||
Payment |
|||
|
|||
Here are the views needed by comnpay |
|||
|
|||
|
|||
### cotisations.payment_methods.comnpay.views.accept_payment(request, factureid) |
|||
The view where the user is redirected when a comnpay payment has been |
|||
accepted. |
|||
|
|||
|
|||
### cotisations.payment_methods.comnpay.views.ipn(request) |
|||
The view called by Comnpay server to validate the transaction. |
|||
Verify that we can firmly save the user’s action and notify |
|||
Comnpay with 400 response if not or with a 200 response if yes. |
|||
|
|||
|
|||
### cotisations.payment_methods.comnpay.views.refuse_payment(request) |
|||
The view where the user is redirected when a comnpay payment has been |
|||
refused. |
|||
|
|||
## Module contents |
|||
|
|||
This module contains a method to pay online using comnpay. |
|||
@ -1,57 +0,0 @@ |
|||
# cotisations.payment_methods.free package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.free.models module |
|||
|
|||
|
|||
### class cotisations.payment_methods.free.models.FreePayment(\*args, \*\*kwargs) |
|||
Bases: `cotisations.payment_methods.mixins.PaymentMethodMixin`, `django.db.models.base.Model` |
|||
|
|||
The model allowing you to bypass payment if the invoice is free. |
|||
|
|||
|
|||
#### exception DoesNotExist() |
|||
Bases: `django.core.exceptions.ObjectDoesNotExist` |
|||
|
|||
|
|||
#### exception MultipleObjectsReturned() |
|||
Bases: `django.core.exceptions.MultipleObjectsReturned` |
|||
|
|||
|
|||
#### check_price(price, user, \*args, \*\*kwargs) |
|||
Checks that the price meets the requirement to be paid with user |
|||
balance. |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Ends the payment normally. |
|||
|
|||
|
|||
#### id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### objects( = <django.db.models.manager.Manager object>) |
|||
|
|||
#### payment() |
|||
Accessor to the related object on the forward side of a one-to-one relation. |
|||
|
|||
In the example: |
|||
|
|||
``` |
|||
class Restaurant(Model): |
|||
place = OneToOneField(Place, related_name='restaurant') |
|||
``` |
|||
|
|||
`restaurant.place` is a `ForwardOneToOneDescriptor` instance. |
|||
|
|||
|
|||
#### payment_id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
## Module contents |
|||
|
|||
This module contains a method to pay online using user balance. |
|||
@ -1,335 +0,0 @@ |
|||
# cotisations.payment_methods package |
|||
|
|||
## Subpackages |
|||
|
|||
|
|||
* cotisations.payment_methods.balance package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.balance.models module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.forms module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.comnpay module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.free package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.free.models module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.forms module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.note module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.forms module |
|||
|
|||
|
|||
### class cotisations.payment_methods.forms.PaymentMethodForm(\*args, \*\*kwargs) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
A special form which allows you to add a payment method to a Payment |
|||
object. |
|||
|
|||
|
|||
#### base_fields( = {'payment_method': <django.forms.fields.ChoiceField object>}) |
|||
|
|||
#### clean() |
|||
A classic clean method, except that it replaces |
|||
self.payment_method by the payment method object if one has been |
|||
found. Tries to call payment_method.valid_form if it exists. |
|||
|
|||
|
|||
#### declared_fields( = {'payment_method': <django.forms.fields.ChoiceField object>}) |
|||
|
|||
#### property media() |
|||
|
|||
#### save(payment, \*args, \*\*kwargs) |
|||
Saves the payment method. |
|||
|
|||
Tries to call payment_method.alter_payment if it exists. |
|||
|
|||
|
|||
### cotisations.payment_methods.forms.payment_method_factory(payment, \*args, creation=True, \*\*kwargs) |
|||
This function finds the right payment method form for a given payment. |
|||
|
|||
If the payment has a payment method, returns a ModelForm of it. Else if |
|||
it is the creation of the payment, a PaymentMethodForm. |
|||
Else None. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **payment** – The payment |
|||
|
|||
|
|||
* **\*args** – arguments passed to the form |
|||
|
|||
|
|||
* **creation** – Should be True if you are creating the payment |
|||
|
|||
|
|||
* **\*\*kwargs** – passed to the form |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A form or None |
|||
|
|||
|
|||
## cotisations.payment_methods.mixins module |
|||
|
|||
|
|||
### class cotisations.payment_methods.mixins.PaymentMethodMixin() |
|||
Bases: `object` |
|||
|
|||
A simple mixin to avoid redefining end_payment if you don’t need to |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Redefine this method in order to get a different ending to the |
|||
payment session if you whish. |
|||
|
|||
Must return a HttpResponse-like object. |
|||
|
|||
## cotisations.payment_methods.urls module |
|||
|
|||
## Module contents |
|||
|
|||
# Custom Payment methods |
|||
|
|||
When creating an invoice with a classic payment method, the creation view calls |
|||
the end_payment method of the Payment object of the invoice. This method |
|||
checks for a payment method associated to the Payment and if nothing is |
|||
found, adds a message for payment confirmation and redirects the user towards |
|||
their profil page. This is fine for most of the payment method, but you might |
|||
want to define custom payment methods. As an example for negociating with an |
|||
other server for online payment or updating some fields in your models. |
|||
|
|||
# Defining a custom payment method |
|||
To define a custom payment method, you can add a Python module to |
|||
cotisations/payment_methods/. This module should be organized like |
|||
a Django application. |
|||
As an example, if you want to add the payment method foo. |
|||
|
|||
## Basic |
|||
|
|||
The first thing to do is to create a foo Python module with a models.py. |
|||
|
|||
`\` |
|||
payment_methods |
|||
├── foo |
|||
│ ├── __init__.py |
|||
│ └── models.py |
|||
├── forms.py |
|||
├── __init__.py |
|||
├── mixins.py |
|||
└── urls.py |
|||
\`` |
|||
|
|||
Then, in models.py you could add a model like this : |
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
python |
|||
from django.db import models |
|||
|
|||
from cotisations.models import Paiement |
|||
from cotisations.payment_methods.mixins import PaymentMethodMixin |
|||
|
|||
# The PaymentMethodMixin defines the default end_payment |
|||
class FooPayment(PaymentMethodMixin, models.Model): |
|||
|
|||
> # This field is required, it is used by Paiement in order to |
|||
> # determine if a payment method is associated to it. |
|||
> payment = models.OneToOneField( |
|||
|
|||
> > Paiement, |
|||
> > on_delete=models.CASCADE, |
|||
> > related_name=’payment_method’, |
|||
> > editable=False |
|||
|
|||
> ) |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
|
|||
And in __init__.py : |
|||
`\`python |
|||
from . import models |
|||
NAME = "FOO" # Name displayed when you crate a payment type |
|||
PaymentMethod = models.FooPayment # You must define this alias |
|||
\`` |
|||
|
|||
Then you just have to register your payment method in |
|||
payment_methods/__init__.py in the PAYMENT_METHODS list : |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
\` |
|||
from . import … # Some existing imports |
|||
from . import foo |
|||
|
|||
PAYMENT_METHODS = [ |
|||
|
|||
# Some already registered payment methods… |
|||
foo |
|||
|
|||
### ] |
|||
|
|||
And… that’s it, you can use your new payment method after running |
|||
makemigrations and migrate. |
|||
|
|||
But this payment method is not really usefull, since it does noting ! |
|||
|
|||
## A payment method which does something |
|||
|
|||
You have to redefine the end_payment method. Here is its prototype : |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
python |
|||
def end_payment(self, invoice, request): |
|||
|
|||
> pass |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
|
|||
With invoice the invoice being created and request the request which |
|||
created it. This method has to return an HttpResponse-like object. |
|||
|
|||
## Additional views |
|||
|
|||
You can add specific urls for your payment method like in any django app. To |
|||
register these urls, modify payment_methods/urls.py. |
|||
|
|||
## Alter the Paiement object after creation |
|||
|
|||
You can do that by adding a alter_payment(self, payment) |
|||
method to your model. |
|||
|
|||
## Validate the creation field |
|||
|
|||
You may want to perform some additionals verifications on the form |
|||
creating the payment. You can do that by adding a valid_form(self, form) |
|||
method to your model, where form is an instance of |
|||
cotisations.payment_methods.forms.PaymentMethodForm. |
|||
@ -1,107 +0,0 @@ |
|||
# cotisations.payment_methods.note_kfet package |
|||
|
|||
## Submodules |
|||
|
|||
## cotisations.payment_methods.note_kfet.forms module |
|||
|
|||
|
|||
### class cotisations.payment_methods.note_kfet.forms.NoteCredentialForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
A special form to get credential to connect to a NoteKfet2015 server throught his API |
|||
object. |
|||
|
|||
|
|||
#### base_fields( = {'login': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>}) |
|||
|
|||
#### declared_fields( = {'login': <django.forms.fields.CharField object>, 'password': <django.forms.fields.CharField object>}) |
|||
|
|||
#### property media() |
|||
## cotisations.payment_methods.note_kfet.models module |
|||
|
|||
|
|||
### class cotisations.payment_methods.note_kfet.models.NotePayment(\*args, \*\*kwargs) |
|||
Bases: `cotisations.payment_methods.mixins.PaymentMethodMixin`, `django.db.models.base.Model` |
|||
|
|||
The model allowing you to pay with NoteKfet2015. |
|||
|
|||
|
|||
#### exception DoesNotExist() |
|||
Bases: `django.core.exceptions.ObjectDoesNotExist` |
|||
|
|||
|
|||
#### exception MultipleObjectsReturned() |
|||
Bases: `django.core.exceptions.MultipleObjectsReturned` |
|||
|
|||
|
|||
#### end_payment(invoice, request) |
|||
Redefine this method in order to get a different ending to the |
|||
payment session if you whish. |
|||
|
|||
Must return a HttpResponse-like object. |
|||
|
|||
|
|||
#### id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### id_note() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### objects( = <django.db.models.manager.Manager object>) |
|||
|
|||
#### payment() |
|||
Accessor to the related object on the forward side of a one-to-one relation. |
|||
|
|||
In the example: |
|||
|
|||
``` |
|||
class Restaurant(Model): |
|||
place = OneToOneField(Place, related_name='restaurant') |
|||
``` |
|||
|
|||
`restaurant.place` is a `ForwardOneToOneDescriptor` instance. |
|||
|
|||
|
|||
#### payment_id() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### port() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
|
|||
#### server() |
|||
A wrapper for a deferred-loading field. When the value is read from this |
|||
object the first time, the query is executed. |
|||
|
|||
## cotisations.payment_methods.note_kfet.note module |
|||
|
|||
Module pour dialoguer avec la NoteKfet2015 |
|||
|
|||
|
|||
### cotisations.payment_methods.note_kfet.note.connect(server, port) |
|||
|
|||
### cotisations.payment_methods.note_kfet.note.don(sock, montant, id_note, facture) |
|||
Faire faire un don à l’id_note |
|||
|
|||
|
|||
### cotisations.payment_methods.note_kfet.note.get_response(socket) |
|||
|
|||
### cotisations.payment_methods.note_kfet.note.login(server, port, username, password, masque=[[], [], True]) |
|||
## cotisations.payment_methods.note_kfet.urls module |
|||
|
|||
## cotisations.payment_methods.note_kfet.views module |
|||
|
|||
Payment |
|||
|
|||
Here are the views needed by comnpay |
|||
|
|||
## Module contents |
|||
|
|||
This module contains a method to pay online using comnpay. |
|||
@ -1,25 +0,0 @@ |
|||
# deployments package |
|||
|
|||
## Submodules |
|||
|
|||
## deployments.admin module |
|||
|
|||
## deployments.apps module |
|||
|
|||
|
|||
### class deployments.apps.DeploymentsConfig(app_name, app_module) |
|||
Bases: `django.apps.config.AppConfig` |
|||
|
|||
|
|||
#### name( = 'deployments') |
|||
## deployments.forms module |
|||
|
|||
## deployments.models module |
|||
|
|||
## deployments.tests module |
|||
|
|||
## deployments.urls module |
|||
|
|||
## deployments.views module |
|||
|
|||
## Module contents |
|||
@ -1,27 +0,0 @@ |
|||
# deployments.migrations package |
|||
|
|||
## Submodules |
|||
|
|||
## deployments.migrations.0001_initial module |
|||
|
|||
|
|||
### class deployments.migrations.0001_initial.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0106_auto_20191120_0159'), ('contenttypes', '0002_remove_content_type_name')]) |
|||
|
|||
#### initial( = True) |
|||
|
|||
#### operations( = [<CreateModel name='Deployment', fields=[('id', <django.db.models.fields.AutoField>), ('machine', <django.db.models.fields.related.ForeignKey>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='Parameter', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('_value', <django.db.models.fields.TextField>), ('object_id', <django.db.models.fields.PositiveIntegerField>), ('update_required', <django.db.models.fields.BooleanField>), ('content_type', <django.db.models.fields.related.ForeignKey>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='ParameterType', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('value', <django.db.models.fields.CharField>), ('default_value', <django.db.models.fields.TextField>), ('dynamic_field', <django.db.models.fields.CharField>), ('content_type', <django.db.models.fields.related.ForeignKey>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='Preference', fields=[('id', <django.db.models.fields.AutoField>), ('compagnon_url', <django.db.models.fields.URLField>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='Recipe', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('description', <django.db.models.fields.TextField>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <AddField model_name='parametertype', name='recipe', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='parameter', name='type', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='deployment', name='recipe', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## deployments.migrations.0002_auto_20200418_2016 module |
|||
|
|||
|
|||
### class deployments.migrations.0002_auto_20200418_2016.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('deployments', '0001_initial')]) |
|||
|
|||
#### operations( = [<CreateModel name='Preferences', fields=[('id', <django.db.models.fields.AutoField>), ('compagnon_url', <django.db.models.fields.URLField>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <DeleteModel name='Preference'>]) |
|||
## Module contents |
|||
@ -1,364 +0,0 @@ |
|||
# logs package |
|||
|
|||
## Subpackages |
|||
|
|||
|
|||
* logs.templatetags package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* logs.templatetags.logs_extra module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
## Submodules |
|||
|
|||
## logs.acl module |
|||
|
|||
logs.acl |
|||
|
|||
Here are defined some functions to check acl on the application. |
|||
|
|||
|
|||
### logs.acl.can_view(user) |
|||
Check if an user can view the application. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**user** – The user who wants to view the application. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A couple (allowed, msg) where allowed is a boolean which is True if |
|||
viewing is granted and msg is a message (can be None). |
|||
|
|||
|
|||
## logs.forms module |
|||
|
|||
The forms used by the machine search view |
|||
|
|||
|
|||
### class logs.forms.ActionsSearchForm(\*args, \*\*kwargs) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
The form for a simple search |
|||
|
|||
|
|||
#### base_fields( = {'e': <django.forms.fields.DateField object>, 's': <django.forms.fields.DateField object>, 't': <django.forms.fields.MultipleChoiceField object>, 'u': <django.forms.models.ModelChoiceField object>}) |
|||
|
|||
#### declared_fields( = {'e': <django.forms.fields.DateField object>, 's': <django.forms.fields.DateField object>, 't': <django.forms.fields.MultipleChoiceField object>, 'u': <django.forms.models.ModelChoiceField object>}) |
|||
|
|||
#### property media() |
|||
|
|||
### class logs.forms.MachineHistorySearchForm(\*args, \*\*kwargs) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
The form for a simple search |
|||
|
|||
|
|||
#### base_fields( = {'e': <django.forms.fields.DateField object>, 'q': <django.forms.fields.CharField object>, 's': <django.forms.fields.DateField object>, 't': <django.forms.fields.CharField object>}) |
|||
|
|||
#### declared_fields( = {'e': <django.forms.fields.DateField object>, 'q': <django.forms.fields.CharField object>, 's': <django.forms.fields.DateField object>, 't': <django.forms.fields.CharField object>}) |
|||
|
|||
#### property media() |
|||
|
|||
### logs.forms.all_classes(module) |
|||
|
|||
### logs.forms.classes_for_action_type(action_type) |
|||
Return the list of class names to be displayed for a |
|||
given actions type filter |
|||
|
|||
## logs.models module |
|||
|
|||
logs.models |
|||
The models definitions for the logs app |
|||
|
|||
|
|||
### class logs.models.ActionsSearch() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### get(params) |
|||
|
|||
* **Parameters** |
|||
|
|||
**params** – dict built by the search view |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
QuerySet of Revision objects |
|||
|
|||
|
|||
|
|||
#### models_for_action_types(action_types) |
|||
|
|||
### class logs.models.History() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### get(instance_id, model) |
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **instance_id** – int, The id of the instance to lookup |
|||
|
|||
|
|||
* **model** – class, The type of object to lookup |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
list or None, a list of HistoryEvent, in reverse chronological order |
|||
|
|||
|
|||
|
|||
### class logs.models.HistoryEvent(version, previous_version=None, edited_fields=None) |
|||
Bases: `object` |
|||
|
|||
|
|||
#### edits(hide=[]) |
|||
Build a list of the changes performed during this event |
|||
:param hide: list, the list of fields for which not to show details |
|||
:return: str |
|||
|
|||
|
|||
### class logs.models.InterfaceHistory() |
|||
Bases: `logs.models.History` |
|||
|
|||
|
|||
#### get(interface_id, model) |
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **instance_id** – int, The id of the instance to lookup |
|||
|
|||
|
|||
* **model** – class, The type of object to lookup |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
list or None, a list of HistoryEvent, in reverse chronological order |
|||
|
|||
|
|||
|
|||
### class logs.models.InterfaceHistoryEvent(version, previous_version=None, edited_fields=None) |
|||
Bases: `logs.models.HistoryEvent` |
|||
|
|||
|
|||
### class logs.models.MachineHistory() |
|||
Bases: `logs.models.History` |
|||
|
|||
|
|||
#### get(machine_id, model) |
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **instance_id** – int, The id of the instance to lookup |
|||
|
|||
|
|||
* **model** – class, The type of object to lookup |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
list or None, a list of HistoryEvent, in reverse chronological order |
|||
|
|||
|
|||
|
|||
### class logs.models.MachineHistoryEvent(version, previous_version=None, edited_fields=None) |
|||
Bases: `logs.models.HistoryEvent` |
|||
|
|||
|
|||
### class logs.models.MachineHistorySearch() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### get(search, params) |
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **search** – ip or mac to lookup |
|||
|
|||
|
|||
* **params** – dict built by the search view |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
list or None, a list of MachineHistorySearchEvent in reverse chronological order |
|||
|
|||
|
|||
|
|||
### class logs.models.MachineHistorySearchEvent(user, machine, interface, start=None, end=None) |
|||
Bases: `object` |
|||
|
|||
|
|||
#### is_similar(elt2) |
|||
Checks whether two events are similar enough to be merged |
|||
:return: bool |
|||
|
|||
|
|||
### class logs.models.RelatedHistory(version) |
|||
Bases: `object` |
|||
|
|||
|
|||
### class logs.models.RevisionAction(revision) |
|||
Bases: `object` |
|||
|
|||
A Revision may group multiple Version objects together |
|||
|
|||
|
|||
#### comment() |
|||
|
|||
#### date_created() |
|||
|
|||
#### id() |
|||
|
|||
### class logs.models.UserHistory() |
|||
Bases: `logs.models.History` |
|||
|
|||
|
|||
#### get(user_id, model) |
|||
|
|||
* **Parameters** |
|||
|
|||
**user_id** – int, the id of the user to lookup |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
list or None, a list of UserHistoryEvent, in reverse chronological order |
|||
|
|||
|
|||
|
|||
### class logs.models.UserHistoryEvent(version, previous_version=None, edited_fields=None) |
|||
Bases: `logs.models.HistoryEvent` |
|||
|
|||
|
|||
#### edits(hide=['password', 'pwd_ntlm', 'gpg_fingerprint']) |
|||
Build a list of the changes performed during this event |
|||
:param hide: list, the list of fields for which not to show details |
|||
:return: str |
|||
|
|||
|
|||
### class logs.models.VersionAction(version) |
|||
Bases: `logs.models.HistoryEvent` |
|||
|
|||
|
|||
#### application() |
|||
|
|||
#### edits(hide=['password', 'pwd_ntlm', 'gpg_fingerprint']) |
|||
Build a list of the changes performed during this event |
|||
:param hide: list, the list of fields for which not to show details |
|||
:return: str |
|||
|
|||
|
|||
#### model_name() |
|||
|
|||
#### name() |
|||
|
|||
#### object_id() |
|||
|
|||
#### object_type() |
|||
|
|||
### logs.models.get_history_class(model) |
|||
Find the mos appropriate History subclass to represent |
|||
the given model’s history |
|||
:model: class |
|||
|
|||
|
|||
### logs.models.make_version_filter(key, value) |
|||
Builds a filter for a Version object to filter by argument in its |
|||
serialized_date |
|||
:param key: str, The argument’s key |
|||
:param value: str or int, The argument’s value |
|||
:returns: A Q filter |
|||
|
|||
## logs.tests module |
|||
|
|||
logs.tests |
|||
The tests for the Logs module. |
|||
|
|||
## logs.urls module |
|||
|
|||
Urls de l’application logs, pointe vers les fonctions de views. |
|||
Inclu dans le re2o.urls |
|||
|
|||
## logs.views module |
|||
|
|||
Vues des logs et statistiques générales. |
|||
|
|||
La vue index générale affiche une selection des dernières actions, |
|||
classées selon l’importance, avec date, et user formatés. |
|||
|
|||
Stats_logs renvoie l’ensemble des logs. |
|||
|
|||
Les autres vues sont thématiques, ensemble des statistiques et du |
|||
nombre d’objets par models, nombre d’actions par user, etc |
|||
|
|||
|
|||
### logs.views.get_history_object(request, model, object_name, object_id) |
|||
Get the objet of type model with the given object_id |
|||
Handles permissions and DoesNotExist errors |
|||
|
|||
|
|||
### logs.views.history(request, application, object_name, object_id) |
|||
Render history for a model. |
|||
|
|||
The model is determined using the HISTORY_BIND dictionnary if none is |
|||
found, raises a Http404. The view checks if the user is allowed to see the |
|||
history using the can_view method of the model, or the generic |
|||
can_view_app(“logs”) for deleted objects (see get_history_object). |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **request** – The request sent by the user. |
|||
|
|||
|
|||
* **application** – Name of the application. |
|||
|
|||
|
|||
* **object_name** – Name of the model. |
|||
|
|||
|
|||
* **object_id** – Id of the object you want to acces history. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The rendered page of history if access is granted, else the user is |
|||
redirected to their profile page, with an error message. |
|||
|
|||
|
|||
|
|||
* **Raises** |
|||
|
|||
**Http404** – This kind of models doesn’t have history. |
|||
|
|||
|
|||
## Module contents |
|||
|
|||
logs |
|||
The app in charge of the stats and logs of what’s happening in re2o |
|||
@ -1,36 +0,0 @@ |
|||
# logs.templatetags package |
|||
|
|||
## Submodules |
|||
|
|||
## logs.templatetags.logs_extra module |
|||
|
|||
logs.templatetags.logs_extra |
|||
A templatetag to get the class name for a given object |
|||
|
|||
|
|||
### logs.templatetags.logs_extra.classname(obj) |
|||
Returns the object class name |
|||
|
|||
|
|||
### logs.templatetags.logs_extra.history_button(instance, text=False, html_class=True) |
|||
Creates the correct history button for an instance. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **instance** – The instance of which you want to get history buttons. |
|||
|
|||
|
|||
* **text** – Flag stating if a ‘History’ text should be displayed. |
|||
|
|||
|
|||
* **html_class** – Flag stating if the link should have the html classes |
|||
allowing it to be displayed as a button. |
|||
|
|||
|
|||
|
|||
### logs.templatetags.logs_extra.is_facture(baseinvoice) |
|||
Returns True if a baseinvoice has a Facture child. |
|||
|
|||
## Module contents |
|||
File diff suppressed because one or more lines are too long
@ -1,13 +0,0 @@ |
|||
# manager package |
|||
|
|||
## Submodules |
|||
|
|||
## manager.defaults module |
|||
|
|||
## manager.logger module |
|||
|
|||
## manager.requirements module |
|||
|
|||
## Module contents |
|||
|
|||
This is a module to manage Re2o |
|||
@ -1,40 +0,0 @@ |
|||
# multi_op package |
|||
|
|||
## Submodules |
|||
|
|||
## multi_op.apps module |
|||
|
|||
The database models for the ‘apps’ app of re2o. |
|||
|
|||
For further details on each of those models, see the documentation details for |
|||
each. |
|||
|
|||
|
|||
### class multi_op.apps.MultiOpConfig(app_name, app_module) |
|||
Bases: `django.apps.config.AppConfig` |
|||
|
|||
|
|||
#### name( = 'multi_op') |
|||
## multi_op.forms module |
|||
|
|||
Select a dorm |
|||
|
|||
|
|||
### class multi_op.forms.DormitoryForm(\*args, \*\*kwargs) |
|||
Bases: `re2o.mixins.FormRevMixin`, `django.forms.forms.Form` |
|||
|
|||
Select a dorm |
|||
|
|||
|
|||
#### base_fields( = {'dormitory': <django.forms.models.ModelMultipleChoiceField object>}) |
|||
|
|||
#### declared_fields( = {'dormitory': <django.forms.models.ModelMultipleChoiceField object>}) |
|||
|
|||
#### property media() |
|||
## multi_op.tests module |
|||
|
|||
## multi_op.urls module |
|||
|
|||
## multi_op.views module |
|||
|
|||
## Module contents |
|||
@ -1,355 +0,0 @@ |
|||
# preferences.api package |
|||
|
|||
## Submodules |
|||
|
|||
## preferences.api.serializers module |
|||
|
|||
|
|||
### class preferences.api.serializers.AssoOptionSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.AssoOption objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'siret', 'adresse1', 'adresse2', 'contact', 'telephone', 'pseudo', 'utilisateur_asso', 'description')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.AssoOption` |
|||
|
|||
|
|||
### class preferences.api.serializers.GeneralOptionSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.GeneralOption objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('general_message_fr', 'general_message_en', 'search_display_page', 'pagination_number', 'pagination_large_number', 'req_expire_hrs', 'site_name', 'main_site_url', 'email_from', 'GTU_sum_up', 'GTU')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.GeneralOption` |
|||
|
|||
|
|||
### class preferences.api.serializers.HomeOptionSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.HomeOption objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('facebook_url', 'twitter_url', 'twitter_account_name')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.HomeOption` |
|||
|
|||
|
|||
### class preferences.api.serializers.HomeServiceSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.Service objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### extra_kwargs( = {'api_url': {'view_name': 'homeservice-detail'}}) |
|||
|
|||
#### fields( = ('name', 'url', 'description', 'image', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.Service` |
|||
|
|||
|
|||
### class preferences.api.serializers.MailMessageOptionSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.MailMessageOption objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('welcome_mail_fr', 'welcome_mail_en')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.MailMessageOption` |
|||
|
|||
|
|||
### class preferences.api.serializers.OptionalMachineSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.OptionalMachine objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('password_machine', 'max_lambdauser_interfaces', 'max_lambdauser_aliases', 'ipv6_mode', 'create_machine', 'ipv6', 'default_dns_ttl')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.OptionalMachine` |
|||
|
|||
|
|||
### class preferences.api.serializers.OptionalTopologieSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.OptionalTopologie objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('switchs_ip_type', 'switchs_web_management', 'switchs_web_management_ssl', 'switchs_rest_management', 'switchs_management_utils', 'switchs_management_interface_ip', 'provision_switchs_enabled', 'switchs_provision', 'switchs_management_sftp_creds')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.OptionalTopologie` |
|||
|
|||
|
|||
### class preferences.api.serializers.OptionalUserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.OptionalUser objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('tel_mandatory', 'gpg_fingerprint', 'all_can_create_club', 'self_adhesion', 'shell_default', 'self_change_shell', 'local_email_accounts_enabled', 'local_email_domain', 'max_email_address')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.OptionalUser` |
|||
|
|||
|
|||
### class preferences.api.serializers.RadiusOptionSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize preferences.models.RadiusOption objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('radius_general_policy', 'unknown_machine', 'unknown_machine_vlan', 'unknown_port', 'unknown_port_vlan', 'unknown_room', 'unknown_room_vlan', 'non_member', 'non_member_vlan', 'banned', 'banned_vlan', 'vlan_decision_ok')) |
|||
|
|||
#### model() |
|||
alias of `preferences.models.RadiusOption` |
|||
|
|||
## preferences.api.urls module |
|||
|
|||
## preferences.api.views module |
|||
|
|||
|
|||
### class preferences.api.views.AssoOptionView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.AssoOption settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.AssoOption'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.AssoOptionSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.GeneralOptionView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.GeneralOption settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.GeneralOption'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.GeneralOptionSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.HomeOptionView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.HomeOption settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.HomeOption'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.HomeOptionSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.HomeServiceViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of preferences.models.Service objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.HomeServiceSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class preferences.api.views.MailMessageOptionView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.MailMessageOption settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.MailMessageOption'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.MailMessageOptionSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.OptionalMachineView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.OptionalMachine settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.OptionalMachine'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.OptionalMachineSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.OptionalTopologieView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.OptionalTopologie settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.OptionalTopologie'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.OptionalTopologieSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.OptionalUserView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models. settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.OptionalUser'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.OptionalUserSerializer` |
|||
|
|||
|
|||
### class preferences.api.views.RadiusOptionView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.RetrieveAPIView` |
|||
|
|||
Exposes details of preferences.models.OptionalTopologie settings. |
|||
|
|||
|
|||
#### get_object() |
|||
Returns the object the view is displaying. |
|||
|
|||
You may want to override this if you need to provide non-standard |
|||
queryset lookups. Eg if objects are referenced using multiple |
|||
keyword arguments in the url conf. |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<bound method AclMixin.can_view_all of <class 'preferences.models.RadiusOption'>>]}) |
|||
|
|||
#### serializer_class() |
|||
alias of `preferences.api.serializers.RadiusOptionSerializer` |
|||
|
|||
## Module contents |
|||
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@ |
|||
# preferences.templatetags package |
|||
|
|||
## Module contents |
|||
@ -1,23 +0,0 @@ |
|||
# re2o.management.commands package |
|||
|
|||
## Submodules |
|||
|
|||
## re2o.management.commands.gen_contrib module |
|||
|
|||
Write in a python file the list of all contributors sorted by number of |
|||
commits. This list is extracted from the current gitlab repository. |
|||
|
|||
|
|||
### class re2o.management.commands.gen_contrib.Command(stdout=None, stderr=None, no_color=False) |
|||
Bases: `django.core.management.base.BaseCommand` |
|||
|
|||
The command object for gen_contrib |
|||
|
|||
|
|||
#### handle(\*args, \*\*options) |
|||
The actual logic of the command. Subclasses must implement |
|||
this method. |
|||
|
|||
|
|||
#### help( = 'Update contributors list') |
|||
## Module contents |
|||
@ -1,18 +0,0 @@ |
|||
# re2o.management package |
|||
|
|||
## Subpackages |
|||
|
|||
|
|||
* re2o.management.commands package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.management.commands.gen_contrib module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
## Module contents |
|||
@ -1,989 +0,0 @@ |
|||
# re2o package |
|||
|
|||
## Subpackages |
|||
|
|||
|
|||
* re2o.management package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* re2o.management.commands package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.management.commands.gen_contrib module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* re2o.templatetags package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.templatetags.acl module |
|||
|
|||
|
|||
* re2o.templatetags.design module |
|||
|
|||
|
|||
* re2o.templatetags.massive_bootstrap_form module |
|||
|
|||
|
|||
* re2o.templatetags.pagination_extra module |
|||
|
|||
|
|||
* re2o.templatetags.self_adhesion module |
|||
|
|||
|
|||
* re2o.templatetags.url_insert_param module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
## Submodules |
|||
|
|||
## re2o.acl module |
|||
|
|||
Handles ACL for re2o. |
|||
|
|||
Here are defined some decorators that can be used in views to handle ACL. |
|||
|
|||
|
|||
### re2o.acl.acl_base_decorator(method_name, \*targets, on_instance=True) |
|||
Base decorator for acl. It checks if the request.user has the |
|||
permission by calling model.method_name. If the flag on_instance is True, |
|||
tries to get an instance of the model by calling |
|||
model.get_instance(\*args, \*\*kwargs) and runs instance.mehod_name |
|||
rather than model.method_name. |
|||
|
|||
It is not intended to be used as is. It is a base for others ACL |
|||
decorators. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
|
|||
* **method_name** – The name of the method which is to to be used for ACL. |
|||
(ex: ‘can_edit’) WARNING: if no method called ‘method_name’ exists, |
|||
then no error will be triggered, the decorator will act as if |
|||
permission was granted. This is to allow you to run ACL tests on |
|||
fields only. If the method exists, it has to return a 2-tuple |
|||
(can, reason, permissions) with can being a boolean stating |
|||
whether the access is granted, reason an arror message to be |
|||
displayed if can equals False (can be None) and permissions |
|||
a list of permissions needed for access (can be None). If can is |
|||
True and permission is not None, a warning message will be |
|||
displayed. |
|||
|
|||
|
|||
* **\*targets** – The targets. Targets are specified like a sequence of models |
|||
and fields names. As an example |
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
|
|||
> acl_base_decorator(‘can_edit’, ModelA, ‘field1’, ‘field2’, ModelB, ModelC, ‘field3’, on_instance=False) |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
\` |
|||
will make the following calls (where user is the current user, |
|||
\*args and \*\*kwargs are the arguments initially passed to the |
|||
view): |
|||
|
|||
> |
|||
> * ModelA.can_edit(user, \*args, \*\*kwargs) |
|||
|
|||
|
|||
> * ModelA.can_change_field1(user, \*args, \*\*kwargs) |
|||
|
|||
|
|||
> * ModelA.can_change_field2(user, \*args, \*\*kwargs) |
|||
|
|||
|
|||
> * ModelB.can_edit(user, \*args, \*\*kwargs) |
|||
|
|||
|
|||
> * ModelC.can_edit(user, \*args, \*\*kwargs) |
|||
|
|||
|
|||
> * ModelC.can_change_field3(user, \*args, \*\*kwargs) |
|||
|
|||
Note that |
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
|
|||
> acl_base_decorator(‘can_edit’, ‘field1’, ModelA, ‘field2’, on_instance=False) |
|||
|
|||
`\` |
|||
would have the same effect that |
|||
\`` |
|||
|
|||
> acl_base_decorator(‘can_edit’, ModelA, ‘field1’, ‘field2’, on_instance=False) |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
\` |
|||
But don’t do that, it’s silly. |
|||
|
|||
|
|||
|
|||
* **on_instance** – When on_instance equals False, the decorator runs the |
|||
ACL method on the model class rather than on an instance. If an |
|||
instance need to fetched, it is done calling the assumed existing |
|||
method get_instance of the model, with the arguments originally |
|||
passed to the view. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The user is either redirected to their own page with an explanation |
|||
message if at least one access is not granted, or to the view. In order |
|||
to avoid duplicate DB calls, when the on_instance flag equals True, |
|||
the instances are passed to the view. Example, with this decorator: |
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
|
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
|
|||
> acl_base_decorator(‘can_edit’, ModelA, ‘field1’, ‘field2’, ModelB,ModelC) |
|||
|
|||
`\` |
|||
The view will be called like this: |
|||
\`` |
|||
|
|||
> view(request, instance_of_A, instance_of_b, |
|||
|
|||
> ``` |
|||
> * |
|||
> ``` |
|||
|
|||
> args, |
|||
|
|||
> ``` |
|||
> ** |
|||
> ``` |
|||
|
|||
> kwargs) |
|||
|
|||
|
|||
|
|||
``` |
|||
`` |
|||
``` |
|||
|
|||
\` |
|||
where \*args and \*\*kwargs are the original view arguments. |
|||
|
|||
|
|||
|
|||
|
|||
### re2o.acl.acl_error_message(msg, permissions) |
|||
Create an error message for msg and permissions. |
|||
|
|||
|
|||
### re2o.acl.can_change(\*targets) |
|||
Decorator to check if an user can edit a field of a model class. |
|||
Difference with can_edit : takes a class and not an instance |
|||
It runs acl_base_decorator with the flag on_instance=False and the |
|||
method ‘can_change’. See acl_base_decorator documentation for further |
|||
details. |
|||
|
|||
|
|||
### re2o.acl.can_create(\*models) |
|||
Decorator to check if an user can create the given models. It runs |
|||
acl_base_decorator with the flag on_instance=False and the method |
|||
‘can_create’. See acl_base_decorator documentation for further details. |
|||
|
|||
|
|||
### re2o.acl.can_delete(\*targets) |
|||
Decorator to check if an user can delete a model. |
|||
It runs acl_base_decorator with the flag on_instance=True and the |
|||
method ‘can_edit’. See acl_base_decorator documentation for further |
|||
details. |
|||
|
|||
|
|||
### re2o.acl.can_delete_set(model) |
|||
Decorator which returns a list of detable models by request user. |
|||
If none of them, return an error |
|||
|
|||
|
|||
### re2o.acl.can_edit(\*targets) |
|||
Decorator to check if an user can edit the models. |
|||
It runs acl_base_decorator with the flag on_instance=True and the |
|||
method ‘can_edit’. See acl_base_decorator documentation for further |
|||
details. |
|||
|
|||
|
|||
### re2o.acl.can_edit_history(view) |
|||
Decorator to check if an user can edit history. |
|||
|
|||
|
|||
### re2o.acl.can_view(\*targets) |
|||
Decorator to check if an user can view a model. |
|||
It runs acl_base_decorator with the flag on_instance=True and the |
|||
method ‘can_view’. See acl_base_decorator documentation for further |
|||
details. |
|||
|
|||
|
|||
### re2o.acl.can_view_all(\*targets) |
|||
Decorator to check if an user can view a class of model. |
|||
It runs acl_base_decorator with the flag on_instance=False and the |
|||
method ‘can_view_all’. See acl_base_decorator documentation for further |
|||
details. |
|||
|
|||
|
|||
### re2o.acl.can_view_app(\*apps_name) |
|||
Decorator to check if an user can view the applications. |
|||
|
|||
## re2o.aes_field module |
|||
|
|||
Module defining a AESEncryptedField object that can be used in forms |
|||
to handle the use of properly encrypting and decrypting AES keys |
|||
|
|||
|
|||
### class re2o.aes_field.AESEncryptedField(\*args, \*\*kwargs) |
|||
Bases: `django.db.models.fields.CharField` |
|||
|
|||
A Field that can be used in forms for adding the support |
|||
of AES ecnrypted fields |
|||
|
|||
|
|||
#### formfield(\*\*kwargs) |
|||
Returns a django.forms.Field instance for this database Field. |
|||
|
|||
|
|||
#### from_db_value(value, \*args, \*\*kwargs) |
|||
|
|||
#### get_prep_value(value) |
|||
Perform preliminary non-db specific value checks and conversions. |
|||
|
|||
|
|||
#### save_form_data(instance, data) |
|||
|
|||
#### to_python(value) |
|||
Converts the input value into the expected Python data type, raising |
|||
django.core.exceptions.ValidationError if the data can’t be converted. |
|||
Returns the converted value. Subclasses should override this. |
|||
|
|||
|
|||
### class re2o.aes_field.AESEncryptedFormField(max_length=None, min_length=None, strip=True, empty_value='', \*args, \*\*kwargs) |
|||
Bases: `django.forms.fields.CharField` |
|||
|
|||
|
|||
#### widget( = <django.forms.widgets.PasswordInput object>) |
|||
|
|||
### re2o.aes_field.decrypt(key, secret) |
|||
AES Decrypt a secret with the key key |
|||
|
|||
|
|||
### re2o.aes_field.encrypt(key, secret) |
|||
AES Encrypt a secret with the key key |
|||
|
|||
|
|||
### re2o.aes_field.genstring(length=16, chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\\'()\*+,-./:;<=>?@[\\\\]^_\`{|}~ \\t\\n\\r\\x0b\\x0c') |
|||
Generate a random string of length length and composed of |
|||
the characters in chars |
|||
|
|||
## re2o.base module |
|||
|
|||
Regroupe les fonctions transversales utiles |
|||
|
|||
Et non corrélées/dépendantes des autres applications |
|||
|
|||
|
|||
### class re2o.base.SortTable() |
|||
Bases: `object` |
|||
|
|||
Class gathering uselful stuff to sort the colums of a table, according |
|||
to the column and order requested. It’s used with a dict of possible |
|||
values and associated model_fields |
|||
|
|||
|
|||
#### COTISATIONS_CONTROL( = {'control_control': ['control'], 'control_date': ['date'], 'control_id': ['id'], 'control_name': ['user__adherent__name'], 'control_paiement': ['paiement'], 'control_surname': ['user__surname'], 'control_user-id': ['user__id'], 'control_valid': ['valid'], 'default': ['-date']}) |
|||
|
|||
#### COTISATIONS_CUSTOM( = {'default': ['-date'], 'invoice_address': ['address'], 'invoice_date': ['date'], 'invoice_id': ['id'], 'invoice_payment': ['payment'], 'invoice_recipient': ['recipient']}) |
|||
|
|||
#### COTISATIONS_INDEX( = {'cotis_date': ['date'], 'cotis_id': ['id'], 'cotis_paiement': ['paiement__moyen'], 'cotis_user': ['user__pseudo'], 'default': ['-date']}) |
|||
|
|||
#### LOGS_INDEX( = {'default': ['-revision__date_created'], 'sum_date': ['revision__date_created']}) |
|||
|
|||
#### LOGS_STATS_LOGS( = {'default': ['-date_created'], 'logs_author': ['user__name'], 'logs_date': ['date_created']}) |
|||
|
|||
#### MACHINES_INDEX( = {'default': ['pk'], 'machine_name': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX( = {'default': ['switchbay', 'stack', 'stack_member_id'], 'switch_dns': ['interface__domain__name'], 'switch_ip': ['interface__ipv4__ipv4'], 'switch_loc': ['switchbay__name'], 'switch_ports': ['number'], 'switch_stack': ['stack__name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_BORNE( = {'ap_ip': ['interface__ipv4__ipv4'], 'ap_mac': ['interface__mac_address'], 'ap_name': ['interface__domain__name'], 'default': ['interface__domain__name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_BUILDING( = {'building_name': ['name'], 'default': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_CONSTRUCTOR_SWITCH( = {'constructor-switch_name': ['name'], 'default': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_DORMITORY( = {'default': ['name'], 'dormitory_name': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_MODEL_SWITCH( = {'default': ['reference'], 'model-switch_contructor': ['constructor__name'], 'model-switch_name': ['reference']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_PORT( = {'default': ['port'], 'port_interface': ['machine_interface__domain__name'], 'port_port': ['port'], 'port_radius': ['radius'], 'port_related': ['related__switch__name'], 'port_room': ['room__name'], 'port_vlan': ['vlan_force__name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_ROOM( = {'building_name': ['building__name'], 'default': ['building__name', 'name'], 'room_name': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_STACK( = {'default': ['stack_id'], 'stack_id': ['stack_id'], 'stack_name': ['name']}) |
|||
|
|||
#### TOPOLOGIE_INDEX_SWITCH_BAY( = {'default': ['name'], 'switch-bay_building': ['building__name'], 'switch-bay_name': ['name']}) |
|||
|
|||
#### USERS_INDEX( = {'default': ['state', 'pseudo'], 'user_name': ['name'], 'user_pseudo': ['pseudo'], 'user_room': ['room'], 'user_surname': ['surname']}) |
|||
|
|||
#### USERS_INDEX_BAN( = {'ban_end': ['date_end'], 'ban_start': ['date_start'], 'ban_user': ['user__pseudo'], 'default': ['-date_end']}) |
|||
|
|||
#### USERS_INDEX_SCHOOL( = {'default': ['name'], 'school_name': ['name']}) |
|||
|
|||
#### USERS_INDEX_WHITE( = {'default': ['-date_end'], 'white_end': ['date_end'], 'white_start': ['date_start'], 'white_user': ['user__pseudo']}) |
|||
|
|||
#### static sort(request, col, order, values) |
|||
Check if the given values are possible and add .order_by() and |
|||
a .reverse() as specified according to those values |
|||
|
|||
|
|||
### re2o.base.convert_datetime_format(format) |
|||
|
|||
### re2o.base.get_input_formats_help_text(input_formats) |
|||
Returns a help text about the possible input formats |
|||
|
|||
|
|||
### re2o.base.re2o_paginator(request, query_set, pagination_number, page_arg='page') |
|||
Paginator script for list display in re2o. |
|||
:request: |
|||
:query_set: Query_set to paginate |
|||
:pagination_number: Number of entries to display |
|||
|
|||
|
|||
### re2o.base.smtp_check(local_part) |
|||
Return True if the local_part is already taken |
|||
False if available |
|||
|
|||
## re2o.context_processors module |
|||
|
|||
Fonction de context, variables renvoyées à toutes les vues |
|||
|
|||
|
|||
### re2o.context_processors.context_optionnal_apps(request) |
|||
Fonction de context pour générer la navbar en fonction des |
|||
apps optionnels |
|||
|
|||
|
|||
### re2o.context_processors.context_user(request) |
|||
Fonction de context lorsqu’un user est logué (ou non), |
|||
renvoie les infos sur l’user, la liste de ses droits, ses machines |
|||
|
|||
|
|||
### re2o.context_processors.date_now(request) |
|||
Add the current date in the context for quick informations and |
|||
comparisons |
|||
|
|||
## re2o.contributors module |
|||
|
|||
re2o.contributors |
|||
A list of the proud contributors to Re2o |
|||
|
|||
## re2o.field_permissions module |
|||
|
|||
re2o.field_permissions |
|||
A model mixin and a field mixin used to remove some unauthorized fields |
|||
from the form automatically generated from the model. The model must |
|||
subclass FieldPermissionModelMixin and the form must subclass |
|||
FieldPermissionFieldMixin so when a Django form is generated from the |
|||
fields of the models, some fields will be removed if the user don’t have |
|||
the rights to change them (can_change_{name}) |
|||
|
|||
|
|||
### class re2o.field_permissions.FieldPermissionFormMixin(\*args, \*\*kwargs) |
|||
Bases: `object` |
|||
|
|||
Construit le formulaire et retire les champs interdits |
|||
|
|||
|
|||
#### remove_unauthorized_field(name) |
|||
Remove one field from the fields of the form |
|||
|
|||
|
|||
### class re2o.field_permissions.FieldPermissionModelMixin() |
|||
Bases: `object` |
|||
|
|||
The model mixin. Defines the has_field_perm function |
|||
|
|||
|
|||
#### FIELD_PERMISSION_GETTER( = 'can_change_{name}') |
|||
|
|||
#### FIELD_PERMISSION_MISSING_DEFAULT( = True) |
|||
|
|||
#### FIELD_PERM_CODENAME( = 'can_change_{model}_{name}') |
|||
|
|||
#### field_permissions( = {}) |
|||
|
|||
#### has_field_perm(user, field) |
|||
Checks if a user has the right to edit the field |
|||
of this model |
|||
|
|||
## re2o.login module |
|||
|
|||
re2o.login |
|||
Module in charge of handling the login process and verifications |
|||
|
|||
|
|||
### class re2o.login.CryptPasswordHasher() |
|||
Bases: `django.contrib.auth.hashers.BasePasswordHasher` |
|||
|
|||
Crypt password hashing to allow for LDAP auth compatibility |
|||
We do not encode, this should bot be used ! |
|||
The actual implementation may depend on the OS. |
|||
|
|||
|
|||
#### algorithm( = '{crypt}') |
|||
|
|||
#### encode(password, salt) |
|||
Creates an encoded database value |
|||
|
|||
The result is normally formatted as “algorithm$salt$hash” and |
|||
must be fewer than 128 characters. |
|||
|
|||
|
|||
#### harden_runtime(password, encoded) |
|||
Method implemented to shut up BasePasswordHasher warning |
|||
|
|||
As we are not using multiple iterations the method is pretty useless |
|||
|
|||
|
|||
#### safe_summary(encoded) |
|||
Provides a safe summary of the password |
|||
|
|||
|
|||
#### verify(password, encoded) |
|||
Check password against encoded using CRYPT algorithm |
|||
|
|||
|
|||
### class re2o.login.MD5PasswordHasher() |
|||
Bases: `django.contrib.auth.hashers.BasePasswordHasher` |
|||
|
|||
Salted MD5 password hashing to allow for LDAP auth compatibility |
|||
We do not encode, this should bot be used ! |
|||
|
|||
|
|||
#### algorithm( = '{SMD5}') |
|||
|
|||
#### encode(password, salt) |
|||
Creates an encoded database value |
|||
|
|||
The result is normally formatted as “algorithm$salt$hash” and |
|||
must be fewer than 128 characters. |
|||
|
|||
|
|||
#### harden_runtime(password, encoded) |
|||
Method implemented to shut up BasePasswordHasher warning |
|||
|
|||
As we are not using multiple iterations the method is pretty useless |
|||
|
|||
|
|||
#### safe_summary(encoded) |
|||
Provides a safe summary of the password |
|||
|
|||
|
|||
#### verify(password, encoded) |
|||
Check password against encoded using SMD5 algorithm |
|||
|
|||
|
|||
### class re2o.login.RecryptBackend() |
|||
Bases: `django.contrib.auth.backends.ModelBackend` |
|||
|
|||
|
|||
#### authenticate(username=None, password=None) |
|||
|
|||
### class re2o.login.SSHAPasswordHasher() |
|||
Bases: `django.contrib.auth.hashers.BasePasswordHasher` |
|||
|
|||
Salted SHA-1 password hashing to allow for LDAP auth compatibility |
|||
|
|||
|
|||
#### algorithm( = '{SSHA}') |
|||
|
|||
#### encode(password, salt) |
|||
Hash and salt the given password using SSHA algorithm |
|||
|
|||
salt is overridden |
|||
|
|||
|
|||
#### harden_runtime(password, encoded) |
|||
Method implemented to shut up BasePasswordHasher warning |
|||
|
|||
As we are not using multiple iterations the method is pretty useless |
|||
|
|||
|
|||
#### safe_summary(encoded) |
|||
Provides a safe summary of the password |
|||
|
|||
|
|||
#### verify(password, encoded) |
|||
Check password against encoded using SSHA algorithm |
|||
|
|||
|
|||
### re2o.login.checkPassword(challenge_password, password) |
|||
Check if a given password match the hash of a stored password |
|||
|
|||
|
|||
### re2o.login.hashNT(password) |
|||
Build a md4 hash of the password to use as the NT-password |
|||
|
|||
|
|||
### re2o.login.hash_password_salt(hashed_password) |
|||
Extract the salt from a given hashed password |
|||
|
|||
|
|||
### re2o.login.makeSecret(password) |
|||
Build a hashed and salted version of the password |
|||
|
|||
## re2o.mail_utils module |
|||
|
|||
Regroupe les fonctions en lien avec les mails |
|||
|
|||
|
|||
### re2o.mail_utils.send_mail(request, \*args, \*\*kwargs) |
|||
Wrapper for Django’s send_mail which handles errors |
|||
|
|||
|
|||
### re2o.mail_utils.send_mail_object(mail, request) |
|||
Wrapper for Django’s EmailMessage.send which handles errors |
|||
|
|||
## re2o.middleware module |
|||
|
|||
Defines the middlewares used in all apps of re2o. |
|||
|
|||
|
|||
### re2o.middleware.show_debug_toolbar(request) |
|||
Middleware to determine wether to show the toolbar. |
|||
|
|||
Compared to django-debug-toolbar’s default, add the possibility to allow |
|||
any IP to see the debug panel by not setting the INTERNAL_IPS options |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**requests** – The request object that must be checked. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
The boolean indicating if the debug toolbar should be shown. |
|||
|
|||
|
|||
## re2o.mixins module |
|||
|
|||
re2o.mixins |
|||
A set of mixins used all over the project to avoid duplicating code |
|||
|
|||
|
|||
### class re2o.mixins.AclMixin() |
|||
Bases: `object` |
|||
|
|||
This mixin is used in nearly every class/models defined in re2o apps. |
|||
It is used by acl, in models (decorators |
|||
|
|||
``` |
|||
can_ |
|||
``` |
|||
|
|||
…) and in templates tags |
|||
:get_instance: Applied on a class, take an id argument, return an instance |
|||
:can_create: Applied on a class, take the requested user, return if the |
|||
|
|||
> user can do the creation |
|||
|
|||
|
|||
* **Can_edit** |
|||
|
|||
Applied on an instance, return if the user can edit the |
|||
instance |
|||
|
|||
|
|||
|
|||
* **Can_delete** |
|||
|
|||
Applied on an instance, return if the user can delete the |
|||
instance |
|||
|
|||
|
|||
|
|||
* **Can_view** |
|||
|
|||
Applied on an instance, return if the user can view the |
|||
instance |
|||
|
|||
|
|||
|
|||
* **Can_view_all** |
|||
|
|||
Applied on a class, return if the user can view all |
|||
instances |
|||
|
|||
|
|||
|
|||
#### classmethod can_create(user_request, \*_args, \*\*_kwargs) |
|||
Verifie que l’user a les bons droits pour créer |
|||
un object |
|||
:param user_request: instance utilisateur qui fait la requête |
|||
:return: soit True, soit False avec la raison de l’échec |
|||
|
|||
|
|||
#### can_delete(user_request, \*_args, \*\*_kwargs) |
|||
Verifie que l’user a les bons droits pour delete |
|||
cette instance |
|||
:param self: Instance à delete |
|||
:param user_request: Utilisateur qui fait la requête |
|||
:return: soit True, soit False avec la raison de l’échec |
|||
|
|||
|
|||
#### can_edit(user_request, \*_args, \*\*_kwargs) |
|||
Verifie que l’user a les bons droits pour editer |
|||
cette instance |
|||
:param self: Instance à editer |
|||
:param user_request: Utilisateur qui fait la requête |
|||
:return: soit True, soit False avec la raison de l’échec |
|||
|
|||
|
|||
#### can_view(user_request, \*_args, \*\*_kwargs) |
|||
Vérifie qu’on peut bien voir cette instance particulière avec |
|||
droit view objet |
|||
:param self: instance à voir |
|||
:param user_request: instance user qui fait l’edition |
|||
:return: True ou False avec la raison de l’échec le cas échéant |
|||
|
|||
|
|||
#### classmethod can_view_all(user_request, \*_args, \*\*_kwargs) |
|||
Vérifie qu’on peut bien afficher l’ensemble des objets, |
|||
droit particulier view objet correspondant |
|||
:param user_request: instance user qui fait l’edition |
|||
:return: True ou False avec la raison de l’échec le cas échéant |
|||
|
|||
|
|||
#### classmethod get_classname() |
|||
Returns the name of the class where this mixin is used |
|||
|
|||
|
|||
#### classmethod get_instance(object_id, \*_args, \*\*kwargs) |
|||
Récupère une instance |
|||
:return: Une instance de la classe évidemment |
|||
|
|||
|
|||
#### classmethod get_modulename() |
|||
Returns the name of the module where this mixin is used |
|||
|
|||
|
|||
### class re2o.mixins.FormRevMixin() |
|||
Bases: `object` |
|||
|
|||
A mixin to subclass the save function of a form |
|||
to enforce the versionning of the object before it is really edited |
|||
|
|||
|
|||
#### save(\*args, \*\*kwargs) |
|||
Create a version of this object and save it to database |
|||
|
|||
|
|||
### class re2o.mixins.RevMixin() |
|||
Bases: `object` |
|||
|
|||
A mixin to subclass the save and delete function of a model |
|||
to enforce the versioning of the object before those actions |
|||
really happen |
|||
|
|||
|
|||
#### delete(\*args, \*\*kwargs) |
|||
Creates a version of this object and delete it from database |
|||
|
|||
|
|||
#### save(\*args, \*\*kwargs) |
|||
Creates a version of this object and save it to database |
|||
|
|||
## re2o.script_utils module |
|||
|
|||
re2o.script_utils |
|||
A set of utility scripts that can be used as standalone to interact easily |
|||
with Re2o throught the CLI |
|||
|
|||
|
|||
### re2o.script_utils.form_cli(Form, user, action, \*args, \*\*kwargs) |
|||
Remplit un formulaire à partir de la ligne de commande |
|||
|
|||
Form : le formulaire (sous forme de classe) à remplir |
|||
user : l’utilisateur re2o faisant la modification |
|||
action : l’action réalisée par le formulaire (pour les logs) |
|||
|
|||
Les arguments suivants sont transmis tels quels au formulaire. |
|||
|
|||
|
|||
### re2o.script_utils.get_system_user() |
|||
Retourne l’utilisateur système ayant lancé la commande |
|||
|
|||
|
|||
### re2o.script_utils.get_user(pseudo) |
|||
Cherche un utilisateur re2o à partir de son pseudo |
|||
|
|||
## re2o.settings module |
|||
|
|||
Django settings for re2o project. |
|||
|
|||
Generated by ‘django-admin startproject’ using Django 1.8.13. |
|||
|
|||
For more information on this file, see |
|||
[https://docs.djangoproject.com/en/1.8/topics/settings/](https://docs.djangoproject.com/en/1.8/topics/settings/) |
|||
|
|||
For the full list of settings and their values, see |
|||
[https://docs.djangoproject.com/en/1.8/ref/settings/](https://docs.djangoproject.com/en/1.8/ref/settings/) |
|||
|
|||
## re2o.settings_local module |
|||
|
|||
re2o.settings_locale |
|||
The file with all the available options for a locale configuration of re2o |
|||
|
|||
## re2o.settings_local module |
|||
|
|||
re2o.settings_locale |
|||
The file with all the available options for a locale configuration of re2o |
|||
|
|||
## re2o.urls module |
|||
|
|||
re2o URL Configuration |
|||
|
|||
The urlpatterns list routes URLs to views. For more information please see: |
|||
|
|||
[https://docs.djangoproject.com/en/1.8/topics/http/urls/](https://docs.djangoproject.com/en/1.8/topics/http/urls/) |
|||
|
|||
Examples: |
|||
Function views |
|||
|
|||
> |
|||
> 1. Add an import: from my_app import views |
|||
|
|||
|
|||
> 2. Add a URL to urlpatterns: url(r’^$’, views.home) |
|||
|
|||
|
|||
> 3. Optional: Add a custom name for this URL: |
|||
|
|||
> url(r’^$’, views.home, name=’home’) |
|||
|
|||
Class-based views |
|||
|
|||
|
|||
1. Add an import: from other_app.views import Home |
|||
|
|||
|
|||
2. Add a URL to urlpatterns: url(r’^$’, Home.as_view()) |
|||
|
|||
|
|||
3. Optional: Add a custom name for this URL: |
|||
|
|||
url(r’^$’, Home.as_view(), name=’home’) |
|||
|
|||
Including another URLconf |
|||
|
|||
|
|||
1. Add a URL to urlpatterns: url(r’^blog/’, include(‘blog.urls’)) |
|||
|
|||
|
|||
2. Optional: Add a custom namespace for all URL using this urlpatterns: |
|||
|
|||
url(r’^blog/’, include(‘blog.urls’), namespace=’blog’) |
|||
|
|||
## re2o.utils module |
|||
|
|||
Regroupe les fonctions transversales utiles |
|||
|
|||
Fonction : |
|||
|
|||
|
|||
* récupérer tous les utilisateurs actifs |
|||
|
|||
|
|||
* récupérer toutes les machines |
|||
|
|||
|
|||
* récupérer tous les bans |
|||
|
|||
etc |
|||
|
|||
|
|||
### re2o.utils.all_active_assigned_interfaces(full=False) |
|||
Renvoie l’ensemble des machines qui ont une ipv4 assignées et |
|||
disposant de l’accès internet |
|||
|
|||
|
|||
### re2o.utils.all_active_assigned_interfaces_count() |
|||
Version light seulement pour compter |
|||
|
|||
|
|||
### re2o.utils.all_active_interfaces(full=False) |
|||
Renvoie l’ensemble des machines autorisées à sortir sur internet |
|||
|
|||
|
|||
### re2o.utils.all_active_interfaces_count() |
|||
Version light seulement pour compter |
|||
|
|||
|
|||
### re2o.utils.all_adherent(search_time=None, including_asso=True) |
|||
Fonction renvoyant tous les users adherents. Optimisee pour n’est |
|||
qu’une seule requete sql |
|||
Inspecte les factures de l’user et ses cotisation, regarde si elles |
|||
sont posterieur à now (end_time) |
|||
|
|||
|
|||
### re2o.utils.all_baned(search_time=None) |
|||
Fonction renvoyant tous les users bannis |
|||
|
|||
|
|||
### re2o.utils.all_has_access(search_time=None, including_asso=True) |
|||
Return all connected users : active users and whitelisted + |
|||
asso_user defined in AssoOption pannel |
|||
—- |
|||
Renvoie tous les users beneficiant d’une connexion |
|||
: user adherent et whiteliste non banni plus l’utilisateur asso |
|||
|
|||
|
|||
### re2o.utils.all_whitelisted(search_time=None) |
|||
Fonction renvoyant tous les users whitelistes |
|||
|
|||
|
|||
### re2o.utils.filter_active_interfaces(interface_set) |
|||
Filtre les machines autorisées à sortir sur internet dans une requête |
|||
|
|||
|
|||
### re2o.utils.filter_complete_interfaces(interface_set) |
|||
Appel la fonction précédente avec un prefetch_related ipv6 en plus |
|||
|
|||
|
|||
### re2o.utils.get_group_having_permission(\*permission_name) |
|||
Returns every group having the permission permission_name |
|||
|
|||
|
|||
### re2o.utils.permission_tree(queryset=None) |
|||
|
|||
### re2o.utils.remove_user_room(room, force=True) |
|||
Déménage de force l’ancien locataire de la chambre |
|||
|
|||
## re2o.views module |
|||
|
|||
Fonctions de la page d’accueil et diverses fonctions utiles pour tous |
|||
les views |
|||
|
|||
|
|||
### re2o.views.about_page(request) |
|||
The view for the about page. |
|||
Fetch some info about the configuration of the project. If it can’t |
|||
get the info from the Git repository, fallback to default string |
|||
|
|||
|
|||
### re2o.views.contact_page(request) |
|||
The view for the contact page |
|||
Send all the objects MailContact |
|||
|
|||
|
|||
### re2o.views.form(ctx, template, request) |
|||
Form générique, raccourci importé par les fonctions views du site |
|||
|
|||
|
|||
### re2o.views.handler404(request) |
|||
The handler view for a 404 error |
|||
|
|||
|
|||
### re2o.views.handler500(request) |
|||
The handler view for a 500 error |
|||
|
|||
|
|||
### re2o.views.index(request) |
|||
Affiche la liste des services sur la page d’accueil de re2o |
|||
|
|||
## re2o.wsgi module |
|||
|
|||
WSGI config for re2o project. |
|||
|
|||
It exposes the WSGI callable as a module-level variable named `application`. |
|||
|
|||
For more information on this file, see |
|||
[https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/](https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/) |
|||
|
|||
## Module contents |
|||
|
|||
re2o |
|||
The main app of Re2o. In charge of all the basics elements which are not |
|||
specific to anyother apps. It includes : |
|||
|
|||
> |
|||
> * Templates used in multiple places |
|||
|
|||
|
|||
> * Templatetags used in multiple places |
|||
|
|||
|
|||
> * ACL base |
|||
|
|||
|
|||
> * Mixins base |
|||
|
|||
|
|||
> * Settings for the Django project |
|||
|
|||
|
|||
> * The login part |
|||
|
|||
|
|||
> * Some utility scripts |
|||
|
|||
|
|||
> * … |
|||
@ -1,582 +0,0 @@ |
|||
# re2o.templatetags package |
|||
|
|||
## Submodules |
|||
|
|||
## re2o.templatetags.acl module |
|||
|
|||
Set of templatetags for using acl in templates: |
|||
|
|||
|
|||
* can_create (model) |
|||
|
|||
|
|||
* cannot_create (model) |
|||
|
|||
|
|||
* can_edit (instance) |
|||
|
|||
|
|||
* cannot_edit (instance) |
|||
|
|||
Some templatetags require a model to calculate the acl while others are need |
|||
an instance of a model (either Model.can_xxx or instance.can_xxx) |
|||
|
|||
**Parameters**: |
|||
|
|||
model_name or instance - Either the model_name (if templatetag is based on |
|||
|
|||
model) or an instantiated object (if templatetag is base on instance) |
|||
that needs to be checked for the current user |
|||
|
|||
args - Any other argument that is interpreted as a python object and passed |
|||
|
|||
to the acl function (can_xxx) |
|||
|
|||
**Usage**: |
|||
|
|||
{% <acl_name> <obj> [arg1 [arg2 […]]]%} |
|||
<template stuff> |
|||
[{% acl_else %} |
|||
<template stuff>] |
|||
{% acl_end %} |
|||
|
|||
where <acl_name> is one of the templatetag names available |
|||
(can_xxx or cannot_xxx) |
|||
|
|||
**Example**: |
|||
|
|||
{% can_create Machine targeted_user %} |
|||
<p>I’m authorized to create new machines.models.for this guy o/</p> |
|||
{% acl_else %} |
|||
<p>Why can’t I create a little machine for this guy ? :(</p> |
|||
{% acl_end %} |
|||
|
|||
{% can_edit user %} |
|||
<p>Oh I can edit myself oO</p> |
|||
{% acl_else %} |
|||
<p>Sniff can’t edit my own infos …</p> |
|||
{% acl_end %} |
|||
|
|||
**How to modify**: |
|||
|
|||
To add a new acl function (can_xxx or cannot_xxx), |
|||
- if it’s based on a model (like can_create), add an entry in |
|||
|
|||
> ‘get_callback’ and register your tag with the other ones juste before |
|||
> ‘acl_model_generic’ definition |
|||
|
|||
|
|||
* if it’s bases on an instance (like can_edit), just register yout tag with |
|||
|
|||
the other ones juste before ‘acl_instance_generic’ definition |
|||
|
|||
To add support for a new model, add an entry in ‘get_model’ and be sure |
|||
the acl function exists in the model definition |
|||
|
|||
|
|||
### class re2o.templatetags.acl.AclInstanceNode(tag_name, instance_name, oknodes, konodes, \*args) |
|||
Bases: `django.template.base.Node` |
|||
|
|||
A node for the compiled ACL block when acl is based on instance |
|||
|
|||
|
|||
#### render(context) |
|||
Return the node rendered as a string. |
|||
|
|||
|
|||
### class re2o.templatetags.acl.AclNode(tag_name, callback, oknodes, konodes, \*args) |
|||
Bases: `django.template.base.Node` |
|||
|
|||
A node for the compiled ACL block when acl callback doesn’t require |
|||
context. |
|||
|
|||
|
|||
#### render(context) |
|||
Return the node rendered as a string. |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_app_filter(parser, token) |
|||
Templatetag for acl checking on applications. |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_change_filter(parser, token) |
|||
Templatetag for acl checking a can_change_xxx function |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_fct(callback, reverse) |
|||
Build a function to use as an acl checker |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_history_filter(parser, token) |
|||
Templatetag for acl checking on history. |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_instance_filter(parser, token) |
|||
Generic definition of an acl templatetag for acl based on instance |
|||
|
|||
|
|||
### re2o.templatetags.acl.acl_model_filter(parser, token) |
|||
Generic definition of an acl templatetag for acl based on model |
|||
|
|||
|
|||
### re2o.templatetags.acl.get_callback(tag_name, obj=None) |
|||
Return the right function to call back to check for acl |
|||
|
|||
|
|||
### re2o.templatetags.acl.get_model(model_name) |
|||
Retrieve the model object from its name |
|||
|
|||
## re2o.templatetags.design module |
|||
|
|||
|
|||
### re2o.templatetags.design.tick(valeur, autoescape=False) |
|||
## re2o.templatetags.massive_bootstrap_form module |
|||
|
|||
Templatetag used to render massive django form selects into bootstrap |
|||
forms that can still be manipulating even if there is multiple tens of |
|||
thousands of elements in the select. It’s made possible using JS libaries |
|||
Twitter Typeahead and Splitree’s Tokenfield. |
|||
See docstring of massive_bootstrap_form for a detailed explaantion on how |
|||
to use this templatetag. |
|||
|
|||
|
|||
### class re2o.templatetags.massive_bootstrap_form.MBFField(name_, field_, bound_, choices_, engine_, match_func_, update_on_, gen_select_, \*args_, \*\*kwargs_) |
|||
Bases: `object` |
|||
|
|||
An object to hold all the information and useful methods needed to |
|||
create and render a massive django form field into an actual HTML and JS |
|||
code able to handle it correctly. |
|||
Twitter Typeahead is used for the display and the matching of queries and |
|||
in case of a MultipleSelect, Sliptree’s Tokenfield is also used to manage |
|||
multiple values. |
|||
A div with only non visible elements is created after the div containing |
|||
the displayed input. It’s used to store the actual data that will be sent |
|||
to the server |
|||
|
|||
|
|||
#### create_js() |
|||
Generate a template for the whole script to use depending on |
|||
gen_select and multiple |
|||
|
|||
|
|||
#### default_choices() |
|||
JS code of the variable choices_<fieldname> |
|||
|
|||
|
|||
#### default_datasets() |
|||
Default JS script of the datasets to use with typeahead |
|||
|
|||
|
|||
#### default_engine() |
|||
Default JS code of the variable engine_<field_name> |
|||
|
|||
|
|||
#### default_match_func() |
|||
Default JS code of the matching function to use with typeahed |
|||
|
|||
|
|||
#### del_select() |
|||
JS code to delete the select if it has been generated and replace |
|||
it with an input. |
|||
|
|||
|
|||
#### fill_js() |
|||
Fill the template with the correct values |
|||
|
|||
|
|||
#### gen_displayed_div() |
|||
Generate HTML code for the div that contains displayed tags |
|||
|
|||
|
|||
#### gen_full_js() |
|||
Generate the full script tag containing the JS code |
|||
|
|||
|
|||
#### gen_hidden() |
|||
JS code to add a hidden tag to store the value. |
|||
|
|||
|
|||
#### gen_hidden_div() |
|||
Generate HTML code for the div that contains hidden tags |
|||
|
|||
|
|||
#### get_script() |
|||
Insert the JS code inside a script tag |
|||
|
|||
|
|||
#### hidden_input() |
|||
HTML for the hidden input element |
|||
|
|||
|
|||
#### render() |
|||
HTML code for the fully rendered field |
|||
|
|||
|
|||
#### tokenfield_create() |
|||
JS code triggered when a new token is created in tokenfield. |
|||
|
|||
|
|||
#### tokenfield_edit() |
|||
JS code triggered when a token is edited in tokenfield. |
|||
|
|||
|
|||
#### tokenfield_init_input() |
|||
JS code to init the fields values |
|||
|
|||
|
|||
#### tokenfield_remove() |
|||
JS code trigggered when a token is removed from tokenfield. |
|||
|
|||
|
|||
#### tokenfield_reset_input() |
|||
JS code to reset the fields values |
|||
|
|||
|
|||
#### tokenfield_updates() |
|||
JS code for binding external fields changes with a reset |
|||
|
|||
|
|||
#### typeahead_change() |
|||
JS code of the function triggered when an item is changed (i.e. |
|||
looses focus and value has changed since the moment it gained focus ) |
|||
|
|||
|
|||
#### typeahead_init_input() |
|||
JS code to init the fields values |
|||
|
|||
|
|||
#### typeahead_reset_input() |
|||
JS code to reset the fields values |
|||
|
|||
|
|||
#### typeahead_select() |
|||
JS code to create the function triggered when an item is selected |
|||
through typeahead |
|||
|
|||
|
|||
#### typeahead_updates() |
|||
JS code for binding external fields changes with a reset |
|||
|
|||
|
|||
### class re2o.templatetags.massive_bootstrap_form.MBFForm(form, mbf_fields, \*args, \*\*kwargs) |
|||
Bases: `object` |
|||
|
|||
An object to hold all the information and useful methods needed to |
|||
create and render a massive django form into an actual HTML and JS |
|||
code able to handle it correctly. |
|||
Every field that is not listed is rendered as a normal bootstrap_field. |
|||
|
|||
|
|||
#### render() |
|||
HTML code for the fully rendered form with all the necessary form |
|||
|
|||
|
|||
### re2o.templatetags.massive_bootstrap_form.massive_bootstrap_form(form, mbf_fields, \*args, \*\*kwargs) |
|||
Render a form where some specific fields are rendered using Twitter |
|||
Typeahead and/or splitree’s Bootstrap Tokenfield to improve the |
|||
performance, the speed and UX when dealing with very large datasets |
|||
(select with 50k+ elts for instance). |
|||
When the fields specified should normally be rendered as a select with |
|||
single selectable option, Twitter Typeahead is used for a better display |
|||
and the matching query engine. When dealing with multiple selectable |
|||
options, sliptree’s Bootstrap Tokenfield in addition with Typeahead. |
|||
For convenience, it accepts the same parameters as a standard bootstrap |
|||
can accept. |
|||
|
|||
**Tag name**: |
|||
|
|||
``` |
|||
massive_bootstrap_form |
|||
``` |
|||
|
|||
**Parameters**: |
|||
|
|||
> form (required) |
|||
|
|||
> The form that is to be rendered |
|||
|
|||
> mbf_fields (optional) |
|||
|
|||
> A list of field names (comma separated) that should be rendered |
|||
> with Typeahead/Tokenfield instead of the default bootstrap |
|||
> renderer. |
|||
> If not specified, all fields will be rendered as a normal bootstrap |
|||
> field. |
|||
|
|||
> mbf_param (optional) |
|||
|
|||
> A dict of parameters for the massive_bootstrap_form tag. The |
|||
> possible parameters are the following. |
|||
|
|||
> choices (optional) |
|||
|
|||
> A dict of strings representing the choices in JS. The keys of |
|||
> the dict are the names of the concerned fields. The choices |
|||
> must be an array of objects. Each of those objects must at |
|||
> least have the fields ‘key’ (value to send) and ‘value’ (value |
|||
> to display). Other fields can be added as desired. |
|||
> For a more complex structure you should also consider |
|||
> reimplementing the engine and the match_func. |
|||
> If not specified, the key is the id of the object and the value |
|||
> is its string representation as in a normal bootstrap form. |
|||
> Example : |
|||
> ‘choices’ : { |
|||
|
|||
> > ‘field_A’:’[{key:0,value:”choice0”,extra:”data0”},{…},…]’, |
|||
> > ‘field_B’:…, |
|||
> > … |
|||
> > } |
|||
|
|||
> engine (optional) |
|||
|
|||
> A dict of strings representating the engine used for matching |
|||
> queries and possible values with typeahead. The keys of the |
|||
> dict are the names of the concerned fields. The string is valid |
|||
> JS code. |
|||
> If not specified, BloodHound with relevant basic properties is |
|||
> used. |
|||
> Example : |
|||
> ‘engine’ : {‘field_A’: ‘new Bloodhound()’, ‘field_B’: …, …} |
|||
|
|||
> match_func (optional) |
|||
|
|||
> A dict of strings representing a valid JS function used in the |
|||
> dataset to overload the matching engine. The keys of the dict |
|||
> are the names of the concerned fields. This function is used |
|||
> the source of the dataset. This function receives 2 parameters, |
|||
> the query and the synchronize function as specified in |
|||
> typeahead.js documentation. If needed, the local variables |
|||
> ‘choices_<fieldname>’ and ‘engine_<fieldname>’ contains |
|||
> respectively the array of all possible values and the engine |
|||
> to match queries with possible values. |
|||
> If not specified, the function used display up to the 10 first |
|||
> elements if the query is empty and else the matching results. |
|||
> Example : |
|||
> ‘match_func’ : { |
|||
|
|||
> > ‘field_A’: ‘function(q, sync) { engine.search(q, sync); }’, |
|||
> > ‘field_B’: …, |
|||
> > … |
|||
|
|||
> } |
|||
|
|||
> update_on (optional) |
|||
|
|||
> A dict of list of ids that the values depends on. The engine |
|||
> and the typeahead properties are recalculated and reapplied. |
|||
> Example : |
|||
> ‘update_on’ : { |
|||
|
|||
> > ‘field_A’ : [ ‘id0’, ‘id1’, … ] , |
|||
> > ‘field_B’ : … , |
|||
> > … |
|||
|
|||
> } |
|||
|
|||
> gen_select (optional) |
|||
|
|||
> A dict of boolean telling if the form should either generate |
|||
> the normal select (set to true) and then use it to generate |
|||
> the possible choices and then remove it or either (set to |
|||
> false) generate the choices variable in this tag and do not |
|||
> send any select. |
|||
> Sending the select before can be usefull to permit the use |
|||
> without any JS enabled but it will execute more code locally |
|||
> for the client so the loading might be slower. |
|||
> If not specified, this variable is set to true for each field |
|||
> Example : |
|||
> ‘gen_select’ : { |
|||
|
|||
> > ‘field_A’: True , |
|||
> > ‘field_B’: … , |
|||
> > … |
|||
|
|||
> } |
|||
|
|||
> See |
|||
|
|||
> ``` |
|||
> boostrap_form_ |
|||
> ``` |
|||
|
|||
> for other arguments |
|||
|
|||
**Usage**: |
|||
|
|||
``` |
|||
{% massive_bootstrap_form |
|||
form |
|||
[ '<field1>[,<field2>[,...]]' ] |
|||
[ mbf_param = { |
|||
[ 'choices': { |
|||
[ '<field1>': '<choices1>' |
|||
[, '<field2>': '<choices2>' |
|||
[, ... ] ] ] |
|||
} ] |
|||
[, 'engine': { |
|||
[ '<field1>': '<engine1>' |
|||
[, '<field2>': '<engine2>' |
|||
[, ... ] ] ] |
|||
} ] |
|||
[, 'match_func': { |
|||
[ '<field1>': '<match_func1>' |
|||
[, '<field2>': '<match_func2>' |
|||
[, ... ] ] ] |
|||
} ] |
|||
[, 'update_on': { |
|||
[ '<field1>': '<update_on1>' |
|||
[, '<field2>': '<update_on2>' |
|||
[, ... ] ] ] |
|||
} ], |
|||
[, 'gen_select': { |
|||
[ '<field1>': '<gen_select1>' |
|||
[, '<field2>': '<gen_select2>' |
|||
[, ... ] ] ] |
|||
} ] |
|||
} ] |
|||
[ <standard boostrap_form parameters> ] |
|||
%} |
|||
``` |
|||
|
|||
**Example**: |
|||
|
|||
> {% massive_bootstrap_form form ‘ipv4’ choices=’[…]’ %} |
|||
|
|||
## re2o.templatetags.pagination_extra module |
|||
|
|||
|
|||
### re2o.templatetags.pagination_extra.pagination_insert_page_and_id(url, page=1, id=None, \*\*kwargs) |
|||
Return the URL with some specific parameters inserted into the query |
|||
part. If a URL has already some parameters, those requested will be |
|||
modified if already exisiting or will be added and the other parameters |
|||
will stay unmodified. If parameters with the same name are already in the |
|||
URL and a value is specified for this parameter, it will replace all |
|||
existing parameters. |
|||
|
|||
**Tag name**: |
|||
|
|||
``` |
|||
pagination_insert_page_and_id |
|||
``` |
|||
|
|||
**Parameters**: |
|||
|
|||
> url |
|||
|
|||
> The URL to use as a base. The parameters will be added to this URL. |
|||
|
|||
> page (optional) |
|||
|
|||
> The page number (greater or equal to 1) to add as a parameter. |
|||
> If not specified, it will default to 1. |
|||
|
|||
> id (optional) |
|||
|
|||
> The ID to jump to in the page. |
|||
> If not specified, it will not be added. |
|||
|
|||
> **Other accepted parameters\*** |
|||
|
|||
> page_args (optional) |
|||
|
|||
> The name of the parameter used to specify the page number. |
|||
> It must be specifically set as a keyword. |
|||
> If not specified, defaults to 1. |
|||
> Example: {% pagination_insert_page_and_id [https://example.com](https://example.com) 2 page_args=”page_id” %} |
|||
|
|||
> > returns [https://example.com?page_id=2](https://example.com?page_id=2) |
|||
|
|||
> **Usage**: |
|||
|
|||
> ``` |
|||
> {% pagination_insert_page_and_id [URL] [page number] [go to id] %} |
|||
> ``` |
|||
|
|||
> **Example**: |
|||
|
|||
> ``` |
|||
> {% pagination_insert_page_and_id https://example.com/bar 2 settings %} |
|||
> return "https://example.com/bar?page=2#settings" |
|||
|
|||
> {% pagination_insert_page_and_id https://example.com/bar?foo=0 2 %} |
|||
> return "https://example.com/bar?foo=0&page=2" |
|||
|
|||
> {% pagination_insert_page_and_id https://example.com/bar?foo=0 2 page_arg="page_id" %} |
|||
> return "https://example.com/bar?foo=0&page_id=2" |
|||
> ``` |
|||
|
|||
## re2o.templatetags.self_adhesion module |
|||
|
|||
re2o.templatetags.self_adhesion |
|||
A simple templatagetag which returns the value of the option self_adhesion |
|||
which indicated if a user can creates an account by himself |
|||
|
|||
|
|||
### re2o.templatetags.self_adhesion.self_adhesion() |
|||
Returns True if the user are allowed to create accounts |
|||
|
|||
## re2o.templatetags.url_insert_param module |
|||
|
|||
Templatetag used to write a URL (specified or current one) and adding |
|||
or inserting specific parameters into the query part without deleting |
|||
the other parameters. |
|||
|
|||
|
|||
### re2o.templatetags.url_insert_param.url_insert_param(url='', \*\*kwargs) |
|||
Return the URL with some specific parameters inserted into the query |
|||
part. If a URL has already some parameters, those requested will be |
|||
modified if already exisiting or will be added and the other parameters |
|||
will stay unmodified. If parameters with the same name are already in the |
|||
URL and a value is specified for this parameter, it will replace all |
|||
existing parameters. |
|||
|
|||
**Tag name**: |
|||
|
|||
``` |
|||
url_insert_param |
|||
``` |
|||
|
|||
**Parameters**: |
|||
|
|||
> url (optional) |
|||
|
|||
> The URL to use as a base. The parameters will be added to this URL. |
|||
> If not specified, it will only return the query part of the URL |
|||
> (“?a=foo&b=bar” for example). |
|||
> Example : “[https://example.com/bar?foo=0&thing=abc](https://example.com/bar?foo=0&thing=abc)” |
|||
|
|||
> other arguments |
|||
|
|||
> Any other key-value argument will be used. The key is considered as |
|||
> the name of the parameter to insert/modify and the value is the one |
|||
> used. |
|||
> Example : q=”foo” search=”bar” name=”johnDoe” |
|||
|
|||
> > will return as ?<existing_param>&q=foo&search=bar&name=johnDoe |
|||
|
|||
> **Usage**: |
|||
|
|||
> ``` |
|||
> {% url_insert_param [URL] [param1=val1 [param2=val2 [...]]] %} |
|||
> ``` |
|||
|
|||
> **Example**: |
|||
|
|||
> ``` |
|||
> {% url_insert_param a=0 b="bar" %} |
|||
> return "?a=0&b=bar" |
|||
|
|||
> {% url_insert_param "url.net/foo.html" a=0 b="bar" %} |
|||
> return "url.net/foo.html?a=0&b=bar" |
|||
|
|||
> {% url_insert_param "url.net/foo.html?c=keep" a=0 b="bar" %} |
|||
> return "url.net/foo.html?c=keep&a=0&b=bar" |
|||
|
|||
> {% url_insert_param "url.net/foo.html?a=del" a=0 b="bar" %} |
|||
> return "url.net/foo.html?a=0&b=bar" |
|||
|
|||
> {% url_insert_param "url.net/foo.html?a=del&c=keep" a=0 b="bar" %} |
|||
> return "url.net/foo.hmtl?a=0&c=keep&b=bar" |
|||
> ``` |
|||
|
|||
## Module contents |
|||
@ -1,183 +0,0 @@ |
|||
# search package |
|||
|
|||
## Submodules |
|||
|
|||
## search.acl module |
|||
|
|||
search.acl |
|||
|
|||
Here are defined some functions to check acl on the application. |
|||
|
|||
|
|||
### search.acl.can_view(_user) |
|||
Check if an user can view the application. |
|||
|
|||
|
|||
* **Parameters** |
|||
|
|||
**user** – The user who wants to view the application. |
|||
|
|||
|
|||
|
|||
* **Returns** |
|||
|
|||
A couple (allowed, msg) where allowed is a boolean which is True if |
|||
viewing is granted and msg is a message (can be None). |
|||
|
|||
|
|||
## search.admin module |
|||
|
|||
The field used in the admin view for the search app |
|||
|
|||
## search.engine module |
|||
|
|||
The views for the search app, responsible for finding the matches |
|||
Augustin lemesle, Gabriel Détraz, Lara Kermarec, Maël Kervella, |
|||
Jean-Romain Garnier |
|||
Gplv2 |
|||
|
|||
|
|||
### class search.engine.Query(text='', case_sensitive=False) |
|||
Bases: `object` |
|||
|
|||
Class representing a query. |
|||
It can contain the user-entered text, the operator for the query, |
|||
and a list of subqueries |
|||
|
|||
|
|||
#### add_char(char) |
|||
Add the given char to the query’s text |
|||
|
|||
|
|||
#### add_operator(operator) |
|||
Consider a new operator was entered, and that it must be processed. |
|||
The query’s current text is moved to self.subqueries in the form |
|||
of a plain Query object |
|||
|
|||
|
|||
#### property plaintext() |
|||
Returns a textual representation of the query’s content |
|||
|
|||
|
|||
### search.engine.apply_filters(filters, user, aff) |
|||
Apply the filters constructed by search_single_query. |
|||
It also takes into account the visual filters defined during |
|||
the search query. |
|||
|
|||
|
|||
### search.engine.contains_filter(attribute, word, case_sensitive=False) |
|||
Create a django model filtering whether the given attribute |
|||
contains the specified value. |
|||
|
|||
|
|||
### search.engine.create_queries(query) |
|||
Function used to split the query in different words to look for. |
|||
The rules are the following : |
|||
|
|||
> |
|||
> * anti-slash (‘’) is used to escape characters |
|||
|
|||
|
|||
> * anything between quotation marks (‘”’) is kept intact (not |
|||
|
|||
> interpreted as separators) excepts anti-slashes used to escape |
|||
> Values in between quotation marks are not searched accross |
|||
> multiple field in the database (contrary to +) |
|||
|
|||
|
|||
> * spaces (‘ ‘) and commas (‘,’) are used to separated words |
|||
|
|||
|
|||
> * “+” signs are used as “and” operators |
|||
|
|||
|
|||
### search.engine.empty_filters() |
|||
Build empty filters used by Django |
|||
|
|||
|
|||
### search.engine.filter_fields() |
|||
Return the list of fields the search applies to |
|||
|
|||
|
|||
### search.engine.finish_results(request, results, col, order) |
|||
Sort the results by applying filters and then limit them to the |
|||
number of max results. Finally add the info of the nmax number of results |
|||
to the dict |
|||
|
|||
|
|||
### search.engine.is_int(variable) |
|||
Check if the variable can be casted to an integer |
|||
|
|||
|
|||
### search.engine.search_single_query(query, filters, user, start, end, user_state, email_state, aff) |
|||
Handle different queries an construct the correct filters using |
|||
search_single_word |
|||
|
|||
|
|||
### search.engine.search_single_word(word, filters, user, start, end, user_state, email_state, aff, case_sensitive=False) |
|||
Construct the correct filters to match differents fields of some models |
|||
with the given query according to the given filters. |
|||
The match field are either CharField or IntegerField that will be displayed |
|||
on the results page (else, one might not see why a result has matched the |
|||
query). IntegerField are matched against the query only if it can be casted |
|||
to an int. |
|||
|
|||
## search.forms module |
|||
|
|||
The forms used by the search app |
|||
|
|||
|
|||
### class search.forms.SearchForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
The form for a simple search |
|||
|
|||
|
|||
#### base_fields( = {'q': <django.forms.fields.CharField object>}) |
|||
|
|||
#### declared_fields( = {'q': <django.forms.fields.CharField object>}) |
|||
|
|||
#### property media() |
|||
|
|||
### class search.forms.SearchFormPlus(\*args, \*\*kwargs) |
|||
Bases: `django.forms.forms.Form` |
|||
|
|||
The form for an advanced search (with filters) |
|||
|
|||
|
|||
#### base_fields( = {'a': <django.forms.fields.MultipleChoiceField object>, 'e': <django.forms.fields.DateField object>, 'm': <django.forms.fields.MultipleChoiceField object>, 'q': <django.forms.fields.CharField object>, 's': <django.forms.fields.DateField object>, 'u': <django.forms.fields.MultipleChoiceField object>}) |
|||
|
|||
#### declared_fields( = {'a': <django.forms.fields.MultipleChoiceField object>, 'e': <django.forms.fields.DateField object>, 'm': <django.forms.fields.MultipleChoiceField object>, 'q': <django.forms.fields.CharField object>, 's': <django.forms.fields.DateField object>, 'u': <django.forms.fields.MultipleChoiceField object>}) |
|||
|
|||
#### property media() |
|||
|
|||
### search.forms.initial_choices(choice_set) |
|||
Return the choices that should be activated by default for a |
|||
given set of choices |
|||
|
|||
## search.tests module |
|||
|
|||
search.tests |
|||
The tests for the Search module. |
|||
|
|||
## search.urls module |
|||
|
|||
The urls used by the search app |
|||
|
|||
## search.views module |
|||
|
|||
The views for the search app, responsible for finding the matches |
|||
Augustin lemesle, Gabriel Détraz, Lara Kermarec, Maël Kervella |
|||
Gplv2 |
|||
|
|||
|
|||
### search.views.get_results(query, request, params) |
|||
The main function of the search procedure. It gather the filters for |
|||
each of the different words of the query and concatenate them into a |
|||
single filter. Then it calls ‘finish_results’ and return the queryset of |
|||
objects to display as results |
|||
|
|||
## Module contents |
|||
|
|||
search |
|||
The app in charge of evrything related to the search function |
|||
@ -1,7 +0,0 @@ |
|||
# test_utils package |
|||
|
|||
## Submodules |
|||
|
|||
## test_utils.runner module |
|||
|
|||
## Module contents |
|||
@ -1,46 +0,0 @@ |
|||
# tickets package |
|||
|
|||
## Subpackages |
|||
|
|||
|
|||
* tickets.preferences package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* tickets.preferences.forms module |
|||
|
|||
|
|||
* tickets.preferences.models module |
|||
|
|||
|
|||
* tickets.preferences.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
## Submodules |
|||
|
|||
## tickets.admin module |
|||
|
|||
## tickets.apps module |
|||
|
|||
|
|||
### class tickets.apps.TicketsConfig(app_name, app_module) |
|||
Bases: `django.apps.config.AppConfig` |
|||
|
|||
|
|||
#### name( = 'tickets') |
|||
## tickets.forms module |
|||
|
|||
## tickets.models module |
|||
|
|||
## tickets.tests module |
|||
|
|||
## tickets.urls module |
|||
|
|||
## tickets.views module |
|||
|
|||
## Module contents |
|||
@ -1,77 +0,0 @@ |
|||
# tickets.migrations package |
|||
|
|||
## Submodules |
|||
|
|||
## tickets.migrations.0001_initial module |
|||
|
|||
|
|||
### class tickets.migrations.0001_initial.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('auth', '__first__')]) |
|||
|
|||
#### initial( = True) |
|||
|
|||
#### operations( = [<CreateModel name='Preferences', fields=[('id', <django.db.models.fields.AutoField>), ('publish_address', <django.db.models.fields.EmailField>), ('mail_language', <django.db.models.fields.IntegerField>)], options={'verbose_name': "Ticket's settings"}>, <CreateModel name='Ticket', fields=[('id', <django.db.models.fields.AutoField>), ('title', <django.db.models.fields.CharField>), ('description', <django.db.models.fields.TextField>), ('date', <django.db.models.fields.DateTimeField>), ('email', <django.db.models.fields.EmailField>), ('solved', <django.db.models.fields.BooleanField>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Ticket', 'verbose_name_plural': 'Tickets', 'permissions': (('view_tickets', 'Can view a ticket object'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>]) |
|||
## tickets.migrations.0002_auto_20191120_0159 module |
|||
|
|||
|
|||
### class tickets.migrations.0002_auto_20191120_0159.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('tickets', '0001_initial')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='preferences', options={'verbose_name': 'tickets preferences'}>, <AlterModelOptions name='ticket', options={'permissions': (('view_tickets', 'Can view a ticket object'),), 'verbose_name': 'ticket', 'verbose_name_plural': 'tickets'}>, <AlterField model_name='preferences', name='mail_language', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='preferences', name='publish_address', field=<django.db.models.fields.EmailField>>, <AlterField model_name='ticket', name='description', field=<django.db.models.fields.TextField>>, <AlterField model_name='ticket', name='email', field=<django.db.models.fields.EmailField>>, <AlterField model_name='ticket', name='title', field=<django.db.models.fields.CharField>>]) |
|||
## tickets.migrations.0003_auto_20200422_1839 module |
|||
|
|||
|
|||
### class tickets.migrations.0003_auto_20200422_1839.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('tickets', '0002_auto_20191120_0159')]) |
|||
|
|||
#### operations( = [<RenameModel old_name='Preferences', new_name='TicketOption'>, <AlterModelOptions name='ticketoption', options={'permissions': (('view_ticketoption', 'Can view tickets options'),), 'verbose_name': 'tickets options'}>]) |
|||
## tickets.migrations.0004_auto_20200422_2127 module |
|||
|
|||
|
|||
### class tickets.migrations.0004_auto_20200422_2127.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('tickets', '0003_auto_20200422_1839')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='ticketoption', name='mail_language'>, <AlterField model_name='ticket', name='description', field=<django.db.models.fields.TextField>>]) |
|||
## tickets.migrations.0005_auto_20200422_2309 module |
|||
|
|||
|
|||
### class tickets.migrations.0005_auto_20200422_2309.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('tickets', '0004_auto_20200422_2127')]) |
|||
|
|||
#### operations( = [<CreateModel name='CommentTicket', fields=[('id', <django.db.models.fields.AutoField>), ('date', <django.db.models.fields.DateTimeField>), ('comment', <django.db.models.fields.TextField>)], options={'verbose_name': 'ticket', 'verbose_name_plural': 'tickets', 'permissions': (('view_commentticket', 'Can view a ticket object'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>)>, <AlterModelOptions name='ticket', options={'permissions': (('view_ticket', 'Can view a ticket object'),), 'verbose_name': 'ticket', 'verbose_name_plural': 'tickets'}>, <AddField model_name='commentticket', name='parent_ticket', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## tickets.migrations.0006_auto_20200423_0202 module |
|||
|
|||
|
|||
### class tickets.migrations.0006_auto_20200423_0202.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('auth', '__first__'), ('tickets', '0005_auto_20200422_2309')]) |
|||
|
|||
#### operations( = [<AddField model_name='commentticket', name='created_at', field=<django.db.models.fields.DateTimeField>, preserve_default=False>, <AddField model_name='commentticket', name='created_by', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>]) |
|||
## tickets.migrations.0007_ticket_language module |
|||
|
|||
|
|||
### class tickets.migrations.0007_ticket_language.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('tickets', '0006_auto_20200423_0202')]) |
|||
|
|||
#### operations( = [<AddField model_name='ticket', name='language', field=<django.db.models.fields.CharField>>]) |
|||
## Module contents |
|||
@ -1,14 +0,0 @@ |
|||
# tickets.preferences package |
|||
|
|||
## Submodules |
|||
|
|||
## tickets.preferences.forms module |
|||
|
|||
## tickets.preferences.models module |
|||
|
|||
## tickets.preferences.views module |
|||
|
|||
## Module contents |
|||
|
|||
tickets |
|||
The app in charge of storing all the tickets for the local installation |
|||
@ -1,537 +0,0 @@ |
|||
# topologie.api package |
|||
|
|||
## Submodules |
|||
|
|||
## topologie.api.serializers module |
|||
|
|||
|
|||
### class topologie.api.serializers.AccessPointSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.AccessPoint objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'name', 'active', 'location', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.AccessPoint` |
|||
|
|||
|
|||
### class topologie.api.serializers.BuildingSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.Building objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Building` |
|||
|
|||
|
|||
### class topologie.api.serializers.ConstructorSwitchSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.ConstructorSwitch objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.ConstructorSwitch` |
|||
|
|||
|
|||
### class topologie.api.serializers.InterfaceRoleSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('interface',)) |
|||
|
|||
#### model() |
|||
alias of `machines.models.Interface` |
|||
|
|||
|
|||
### class topologie.api.serializers.InterfaceVlanSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('ipv4', 'ipv6', 'domain', 'vlan_id')) |
|||
|
|||
#### model() |
|||
alias of `machines.models.Interface` |
|||
|
|||
|
|||
### class topologie.api.serializers.ModelSwitchSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('reference', 'firmware', 'constructor')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.ModelSwitch` |
|||
|
|||
|
|||
### class topologie.api.serializers.PortProfileSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'profil_default', 'vlan_untagged', 'vlan_tagged', 'radius_type', 'radius_mode', 'speed', 'mac_limit', 'flow_control', 'dhcp_snooping', 'dhcpv6_snooping', 'arp_protect', 'ra_guard', 'loop_protect', 'vlan_untagged', 'vlan_tagged')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.PortProfile` |
|||
|
|||
|
|||
### class topologie.api.serializers.PortsSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize machines.models.Ipv6List objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('state', 'port', 'pretty_name', 'get_port_profile')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Port` |
|||
|
|||
|
|||
### class topologie.api.serializers.ProfilSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'profil_default', 'vlan_untagged', 'vlan_tagged', 'radius_type', 'radius_mode', 'speed', 'mac_limit', 'flow_control', 'dhcp_snooping', 'dhcpv6_snooping', 'arp_protect', 'ra_guard', 'loop_protect', 'vlan_untagged', 'vlan_tagged')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.PortProfile` |
|||
|
|||
|
|||
### class topologie.api.serializers.RoleSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize machines.models.OuverturePort objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('role_type', 'servers', 'specific_role')) |
|||
|
|||
#### model() |
|||
alias of `machines.models.Role` |
|||
|
|||
|
|||
### class topologie.api.serializers.RoomSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.Room objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'details', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Room` |
|||
|
|||
|
|||
### class topologie.api.serializers.ServerSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.Server objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'name', 'active', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Server` |
|||
|
|||
|
|||
### class topologie.api.serializers.StackSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.Stack objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'stack_id', 'details', 'member_id_min', 'member_id_max', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Stack` |
|||
|
|||
|
|||
### class topologie.api.serializers.SwitchBaySerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name',)) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.SwitchBay` |
|||
|
|||
|
|||
### class topologie.api.serializers.SwitchPortSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `rest_framework.serializers.ModelSerializer` |
|||
|
|||
Serialize the data about the switches |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('short_name', 'model', 'switchbay', 'ports', 'ipv4', 'ipv6', 'interfaces_subnet', 'interfaces6_subnet', 'automatic_provision', 'rest_enabled', 'web_management_enabled', 'get_radius_key_value', 'get_management_cred_value', 'get_radius_servers', 'list_modules')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Switch` |
|||
|
|||
|
|||
### class topologie.api.serializers.SwitchSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize topologie.models.Switch objects |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'name', 'active', 'port_amount', 'stack', 'stack_member_id', 'model', 'switchbay', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `topologie.models.Switch` |
|||
|
|||
|
|||
### class topologie.api.serializers.VlanPortSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('vlan_id', 'name')) |
|||
|
|||
#### model() |
|||
alias of `machines.models.Vlan` |
|||
|
|||
## topologie.api.urls module |
|||
|
|||
## topologie.api.views module |
|||
|
|||
|
|||
### class topologie.api.views.AccessPointViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.AccessPoint objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<AccessPoint: apdetest.adm.klafyvel.me>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.AccessPointSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.BuildingViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Building objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.BuildingSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.ConstructorSwitchViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.ConstructorSwitch |
|||
objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.ConstructorSwitchSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.ModelSwitchViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.ModelSwitch objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.ModelSwitchSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.PortProfileViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.PortProfile objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<PortProfile: nothing>, <PortProfile: uplink>, <PortProfile: asso_machine>, <PortProfile: accesspoint>, <PortProfile: mac-radius-strict>, <PortProfile: mac-radius-common>, <PortProfile: room>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.PortProfileSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.RoleView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.ListAPIView` |
|||
|
|||
Output of roles for each server |
|||
|
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.RoleSerializer` |
|||
|
|||
|
|||
### class topologie.api.views.RoomViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Room objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.RoomSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.ServerViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Server objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<Server: test0.klafyvel.me>, <Server: apdetest.adm.klafyvel.me>, <Server: monswitch.adm.klafyvel.me>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.ServerSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.StackViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Stack objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.StackSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.SwitchBayViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.SwitchBay objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.SwitchBaySerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.SwitchPortView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.ListAPIView` |
|||
|
|||
Output each port of a switch, to be serialized with |
|||
additionnal informations (profiles etc) |
|||
|
|||
|
|||
#### queryset( = <QuerySet [<Switch: monswitch.adm.klafyvel.me>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.SwitchPortSerializer` |
|||
|
|||
|
|||
### class topologie.api.views.SwitchPortViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Port objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.SwitchPortSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class topologie.api.views.SwitchViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of topologie.models.Switch objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<Switch: monswitch.adm.klafyvel.me>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `topologie.api.serializers.SwitchSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
## Module contents |
|||
@ -1,799 +0,0 @@ |
|||
# topologie.migrations package |
|||
|
|||
## Submodules |
|||
|
|||
## topologie.migrations.0001_initial module |
|||
|
|||
|
|||
### class topologie.migrations.0001_initial.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = []) |
|||
|
|||
#### operations( = [<CreateModel name='Switch', fields=[('id', <django.db.models.fields.AutoField>), ('building', <django.db.models.fields.CharField>), ('number', <django.db.models.fields.IntegerField>), ('details', <django.db.models.fields.CharField>)]>]) |
|||
## topologie.migrations.0002_auto_20160703_1118 module |
|||
|
|||
|
|||
### class topologie.migrations.0002_auto_20160703_1118.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('contenttypes', '0002_remove_content_type_name'), ('topologie', '0001_initial')]) |
|||
|
|||
#### operations( = [<CreateModel name='Port', fields=[('id', <django.db.models.fields.AutoField>), ('port', <django.db.models.fields.IntegerField>), ('details', <django.db.models.fields.CharField>), ('_object_id', <django.db.models.fields.PositiveIntegerField>), ('_content_type', <django.db.models.fields.related.ForeignKey>), ('switch', <django.db.models.fields.related.ForeignKey>)]>, <AlterUniqueTogether name='port', unique_together={('_content_type', '_object_id')}>]) |
|||
## topologie.migrations.0003_room module |
|||
|
|||
|
|||
### class topologie.migrations.0003_room.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0002_auto_20160703_1118')]) |
|||
|
|||
#### operations( = [<CreateModel name='Room', fields=[('id', <django.db.models.fields.AutoField>), ('details', <django.db.models.fields.CharField>), ('building', <django.db.models.fields.CharField>), ('number', <django.db.models.fields.IntegerField>)]>]) |
|||
## topologie.migrations.0004_auto_20160703_1122 module |
|||
|
|||
|
|||
### class topologie.migrations.0004_auto_20160703_1122.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0003_room')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='switch', unique_together={('building', 'number')}>]) |
|||
## topologie.migrations.0005_auto_20160703_1123 module |
|||
|
|||
|
|||
### class topologie.migrations.0005_auto_20160703_1123.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0004_auto_20160703_1122')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='room', unique_together={('building', 'number')}>]) |
|||
## topologie.migrations.0006_auto_20160703_1129 module |
|||
|
|||
|
|||
### class topologie.migrations.0006_auto_20160703_1129.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0005_auto_20160703_1123')]) |
|||
|
|||
#### operations( = [<AddField model_name='room', name='room', field=<django.db.models.fields.IntegerField>, preserve_default=False>, <AlterField model_name='room', name='building', field=<django.db.models.fields.CharField>>, <AlterField model_name='room', name='number', field=<django.db.models.fields.IntegerField>>, <AlterUniqueTogether name='room', unique_together={('building', 'room', 'number')}>]) |
|||
## topologie.migrations.0007_auto_20160703_1148 module |
|||
|
|||
|
|||
### class topologie.migrations.0007_auto_20160703_1148.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0006_auto_20160703_1129')]) |
|||
|
|||
#### operations( = [<AlterField model_name='room', name='number', field=<django.db.models.fields.IntegerField>>]) |
|||
## topologie.migrations.0008_port_room module |
|||
|
|||
|
|||
### class topologie.migrations.0008_port_room.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0007_auto_20160703_1148')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='room', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>]) |
|||
## topologie.migrations.0009_auto_20160703_1200 module |
|||
|
|||
|
|||
### class topologie.migrations.0009_auto_20160703_1200.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0008_port_room')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='room', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0010_auto_20160704_2148 module |
|||
|
|||
|
|||
### class topologie.migrations.0010_auto_20160704_2148.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0009_auto_20160703_1200')]) |
|||
|
|||
#### operations( = [<RenameField model_name='room', old_name='building', new_name='name'>, <AlterUniqueTogether name='room', unique_together=set()>, <RemoveField model_name='room', name='details'>, <RemoveField model_name='room', name='number'>, <RemoveField model_name='room', name='room'>]) |
|||
## topologie.migrations.0011_auto_20160704_2153 module |
|||
|
|||
|
|||
### class topologie.migrations.0011_auto_20160704_2153.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0010_auto_20160704_2148')]) |
|||
|
|||
#### operations( = [<AlterField model_name='room', name='name', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0012_port_machine_interface module |
|||
|
|||
|
|||
### class topologie.migrations.0012_port_machine_interface.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0014_auto_20160706_1220'), ('topologie', '0011_auto_20160704_2153')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='machine_interface', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## topologie.migrations.0013_port_related module |
|||
|
|||
|
|||
### class topologie.migrations.0013_port_related.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0012_port_machine_interface')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='related', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## topologie.migrations.0014_auto_20160706_1238 module |
|||
|
|||
|
|||
### class topologie.migrations.0014_auto_20160706_1238.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0013_port_related')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='port', unique_together={('switch', 'port')}>, <RemoveField model_name='port', name='_content_type'>, <RemoveField model_name='port', name='_object_id'>]) |
|||
## topologie.migrations.0015_auto_20160706_1452 module |
|||
|
|||
|
|||
### class topologie.migrations.0015_auto_20160706_1452.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0014_auto_20160706_1238')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='port', name='related'>, <AddField model_name='port', name='related', field=<django.db.models.fields.related.ManyToManyField>>]) |
|||
## topologie.migrations.0016_auto_20160706_1531 module |
|||
|
|||
|
|||
### class topologie.migrations.0016_auto_20160706_1531.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0015_auto_20160706_1452')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='port', name='related'>, <AddField model_name='port', name='related', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## topologie.migrations.0017_auto_20160718_1141 module |
|||
|
|||
|
|||
### class topologie.migrations.0017_auto_20160718_1141.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0016_auto_20160706_1531')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='machine_interface', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## topologie.migrations.0018_room_details module |
|||
|
|||
|
|||
### class topologie.migrations.0018_room_details.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0017_auto_20160718_1141')]) |
|||
|
|||
#### operations( = [<AddField model_name='room', name='details', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0019_auto_20161026_1348 module |
|||
|
|||
|
|||
### class topologie.migrations.0019_auto_20161026_1348.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0026_auto_20161026_1348'), ('topologie', '0018_room_details')]) |
|||
|
|||
#### operations( = [<AddField model_name='switch', name='location', field=<django.db.models.fields.CharField>, preserve_default=False>, <AddField model_name='switch', name='switch_interface', field=<django.db.models.fields.related.OneToOneField>, preserve_default=False>, <AlterUniqueTogether name='switch', unique_together=set()>, <RemoveField model_name='switch', name='building'>]) |
|||
## topologie.migrations.0020_auto_20161119_0033 module |
|||
|
|||
|
|||
### class topologie.migrations.0020_auto_20161119_0033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0019_auto_20161026_1348')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='machine_interface', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0021_port_radius module |
|||
|
|||
|
|||
### class topologie.migrations.0021_port_radius.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0020_auto_20161119_0033')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0022_auto_20161211_1622 module |
|||
|
|||
|
|||
### class topologie.migrations.0022_auto_20161211_1622.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0021_port_radius')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0023_auto_20170817_1654 module |
|||
|
|||
|
|||
### class topologie.migrations.0023_auto_20170817_1654.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0022_auto_20161211_1622')]) |
|||
|
|||
#### operations( = [<CreateModel name='Stack', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('stack_id', <django.db.models.fields.CharField>), ('details', <django.db.models.fields.CharField>), ('member_id_min', <django.db.models.fields.IntegerField>), ('member_id_max', <django.db.models.fields.IntegerField>)]>, <AddField model_name='switch', name='stack_member_id', field=<django.db.models.fields.IntegerField>>, <AddField model_name='switch', name='stack', field=<django.db.models.fields.related.ForeignKey>>, <AlterUniqueTogether name='switch', unique_together={('stack', 'stack_member_id')}>]) |
|||
## topologie.migrations.0023_auto_20170826_1530 module |
|||
|
|||
|
|||
### class topologie.migrations.0023_auto_20170826_1530.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0022_auto_20161211_1622')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0024_auto_20170818_1021 module |
|||
|
|||
|
|||
### class topologie.migrations.0024_auto_20170818_1021.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0023_auto_20170817_1654')]) |
|||
|
|||
#### operations( = [<AlterField model_name='switch', name='stack', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0024_auto_20170826_1800 module |
|||
|
|||
|
|||
### class topologie.migrations.0024_auto_20170826_1800.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0023_auto_20170826_1530')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0025_merge_20170902_1242 module |
|||
|
|||
|
|||
### class topologie.migrations.0025_merge_20170902_1242.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0024_auto_20170818_1021'), ('topologie', '0024_auto_20170826_1800')]) |
|||
|
|||
#### operations( = []) |
|||
## topologie.migrations.0026_auto_20170902_1245 module |
|||
|
|||
|
|||
### class topologie.migrations.0026_auto_20170902_1245.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0025_merge_20170902_1242')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0027_auto_20170905_1442 module |
|||
|
|||
|
|||
### class topologie.migrations.0027_auto_20170905_1442.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0026_auto_20170902_1245')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='room', options={'ordering': ['name']}>, <AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0028_auto_20170913_1503 module |
|||
|
|||
|
|||
### class topologie.migrations.0028_auto_20170913_1503.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0027_auto_20170905_1442')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0029_auto_20171002_0334 module |
|||
|
|||
|
|||
### class topologie.migrations.0029_auto_20171002_0334.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0028_auto_20170913_1503')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0030_auto_20171004_0235 module |
|||
|
|||
|
|||
### class topologie.migrations.0030_auto_20171004_0235.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0029_auto_20171002_0334'), ('machines', '0049_vlan')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='vlan_force', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='port', name='radius', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0031_auto_20171015_2033 module |
|||
|
|||
|
|||
### class topologie.migrations.0031_auto_20171015_2033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0030_auto_20171004_0235')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='port', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='stack', name='member_id_max', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='stack', name='member_id_min', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='number', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='stack_member_id', field=<django.db.models.fields.PositiveIntegerField>>]) |
|||
## topologie.migrations.0032_auto_20171026_0338 module |
|||
|
|||
|
|||
### class topologie.migrations.0032_auto_20171026_0338.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0031_auto_20171015_2033')]) |
|||
|
|||
#### operations( = [<CreateModel name='ConstructorSwitch', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>)]>, <CreateModel name='ModelSwitch', fields=[('id', <django.db.models.fields.AutoField>), ('reference', <django.db.models.fields.CharField>), ('constructor', <django.db.models.fields.related.ForeignKey>)]>, <AddField model_name='switch', name='model', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0033_auto_20171231_1743 module |
|||
|
|||
|
|||
### class topologie.migrations.0033_auto_20171231_1743.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0032_auto_20171026_0338')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='constructorswitch', options={'permissions': (('view_constructorswitch', 'Peut voir un objet constructorswitch'),)}>, <AlterModelOptions name='modelswitch', options={'permissions': (('view_modelswitch', 'Peut voir un objet modelswitch'),)}>, <AlterModelOptions name='port', options={'permissions': (('view_port', 'Peut voir un objet port'),)}>, <AlterModelOptions name='room', options={'ordering': ['name'], 'permissions': (('view_room', 'Peut voir un objet chambre'),)}>, <AlterModelOptions name='stack', options={'permissions': (('view_stack', 'Peut voir un objet stack'),)}>, <AlterModelOptions name='switch', options={'permissions': (('view_switch', 'Peut voir un objet switch'),)}>]) |
|||
## topologie.migrations.0034_borne module |
|||
|
|||
|
|||
### class topologie.migrations.0034_borne.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0076_auto_20180130_1623'), ('topologie', '0033_auto_20171231_1743')]) |
|||
|
|||
#### operations( = [<CreateModel name='Borne', fields=[('interface_ptr', <django.db.models.fields.related.OneToOneField>), ('location', <django.db.models.fields.CharField>)], options={'permissions': (('view_borne', 'Peut voir une borne'),)}, bases=('machines.interface',)>]) |
|||
## topologie.migrations.0035_auto_20180324_0023 module |
|||
|
|||
|
|||
### class topologie.migrations.0035_auto_20180324_0023.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0034_borne')]) |
|||
|
|||
#### operations( = [<AlterField model_name='borne', name='location', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0036_transferborne module |
|||
|
|||
|
|||
### class topologie.migrations.0036_transferborne.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0035_auto_20180324_0023')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_bornes>, <function Migration.untransfer_bornes>>]) |
|||
|
|||
#### transfer_bornes(schema_editor) |
|||
|
|||
#### untransfer_bornes(schema_editor) |
|||
## topologie.migrations.0037_auto_20180325_0127 module |
|||
|
|||
|
|||
### class topologie.migrations.0037_auto_20180325_0127.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0076_auto_20180130_1623'), ('topologie', '0036_transferborne')]) |
|||
|
|||
#### operations( = [<CreateModel name='NewSwitch', fields=[('interface_ptr', <django.db.models.fields.related.OneToOneField>), ('location', <django.db.models.fields.CharField>), ('number', <django.db.models.fields.PositiveIntegerField>), ('stack_member_id', <django.db.models.fields.PositiveIntegerField>), ('model', <django.db.models.fields.related.ForeignKey>), ('stack', <django.db.models.fields.related.ForeignKey>)], bases=('machines.interface',)>, <AlterUniqueTogether name='newswitch', unique_together={('stack', 'stack_member_id')}>]) |
|||
## topologie.migrations.0038_transfersw module |
|||
|
|||
|
|||
### class topologie.migrations.0038_transfersw.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0037_auto_20180325_0127')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_sw>, <function Migration.untransfer_sw>>]) |
|||
|
|||
#### transfer_sw(schema_editor) |
|||
|
|||
#### untransfer_sw(schema_editor) |
|||
## topologie.migrations.0039_port_new_switch module |
|||
|
|||
|
|||
### class topologie.migrations.0039_port_new_switch.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0038_transfersw')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='new_switch', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0040_transferports module |
|||
|
|||
|
|||
### class topologie.migrations.0040_transferports.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0039_port_new_switch')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_port>, <function Migration.untransfer_port>>]) |
|||
|
|||
#### transfer_port(schema_editor) |
|||
|
|||
#### untransfer_port(schema_editor) |
|||
## topologie.migrations.0041_transferportsw module |
|||
|
|||
|
|||
### class topologie.migrations.0041_transferportsw.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0040_transferports')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='port', unique_together=set()>, <RemoveField model_name='port', name='switch'>, <RenameField 'Port', 'new_switch', 'switch'>]) |
|||
## topologie.migrations.0042_transferswitch module |
|||
|
|||
|
|||
### class topologie.migrations.0042_transferswitch.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0041_transferportsw')]) |
|||
|
|||
#### operations( = [<DeleteModel name='Switch'>]) |
|||
## topologie.migrations.0043_renamenewswitch module |
|||
|
|||
|
|||
### class topologie.migrations.0043_renamenewswitch.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0042_transferswitch')]) |
|||
|
|||
#### operations( = [<RenameModel old_name='NewSwitch', new_name='Switch'>]) |
|||
## topologie.migrations.0044_auto_20180326_0002 module |
|||
|
|||
|
|||
### class topologie.migrations.0044_auto_20180326_0002.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0043_renamenewswitch')]) |
|||
|
|||
#### operations( = [<RenameModel old_name='Borne', new_name='AccessPoint'>, <AlterModelOptions name='accesspoint', options={'permissions': (('view_ap', 'Peut voir une borne'),)}>, <AlterModelOptions name='switch', options={'permissions': (('view_switch', 'Peut voir un objet switch'),)}>]) |
|||
## topologie.migrations.0045_auto_20180326_0123 module |
|||
|
|||
|
|||
### class topologie.migrations.0045_auto_20180326_0123.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0044_auto_20180326_0002')]) |
|||
|
|||
#### operations( = [<AlterField model_name='port', name='switch', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0046_auto_20180326_0129 module |
|||
|
|||
|
|||
### class topologie.migrations.0046_auto_20180326_0129.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0045_auto_20180326_0123')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='port', unique_together={('switch', 'port')}>]) |
|||
## topologie.migrations.0047_ap_machine module |
|||
|
|||
|
|||
### class topologie.migrations.0047_ap_machine.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0046_auto_20180326_0129')]) |
|||
|
|||
#### operations( = [<CreateModel name='NewAccessPoint', fields=[('machine_ptr', <django.db.models.fields.related.OneToOneField>), ('location', <django.db.models.fields.CharField>)], bases=('machines.machine',)>]) |
|||
## topologie.migrations.0048_ap_machine module |
|||
|
|||
|
|||
### class topologie.migrations.0048_ap_machine.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0047_ap_machine')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_ap>, <function Migration.untransfer_ap>>, <DeleteModel name='AccessPoint'>, <RenameModel old_name='NewAccessPoint', new_name='AccessPoint'>]) |
|||
|
|||
#### transfer_ap(schema_editor) |
|||
|
|||
#### untransfer_ap(schema_editor) |
|||
## topologie.migrations.0049_switchs_machine module |
|||
|
|||
|
|||
### class topologie.migrations.0049_switchs_machine.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0048_ap_machine')]) |
|||
|
|||
#### operations( = [<CreateModel name='NewSw', fields=[('machine_ptr', <django.db.models.fields.related.OneToOneField>), ('location', <django.db.models.fields.CharField>), ('number', <django.db.models.fields.PositiveIntegerField>), ('stack_member_id', <django.db.models.fields.PositiveIntegerField>), ('model', <django.db.models.fields.related.ForeignKey>), ('stack', <django.db.models.fields.related.ForeignKey>)], bases=('machines.machine',)>]) |
|||
## topologie.migrations.0050_port_new_switch module |
|||
|
|||
|
|||
### class topologie.migrations.0050_port_new_switch.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0049_switchs_machine')]) |
|||
|
|||
#### operations( = [<AddField model_name='port', name='new_sw', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0051_switchs_machine module |
|||
|
|||
|
|||
### class topologie.migrations.0051_switchs_machine.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0050_port_new_switch')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_sw>, <function Migration.untransfer_sw>>]) |
|||
|
|||
#### transfer_sw(schema_editor) |
|||
|
|||
#### untransfer_sw(schema_editor) |
|||
## topologie.migrations.0052_transferports module |
|||
|
|||
|
|||
### class topologie.migrations.0052_transferports.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0051_switchs_machine')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='port', unique_together=set()>, <RunPython <function Migration.transfer_port>, <function Migration.untransfer_port>>, <RemoveField model_name='port', name='switch'>, <RenameField 'Port', 'new_sw', 'switch'>]) |
|||
|
|||
#### transfer_port(schema_editor) |
|||
|
|||
#### untransfer_port(schema_editor) |
|||
## topologie.migrations.0053_finalsw module |
|||
|
|||
|
|||
### class topologie.migrations.0053_finalsw.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0052_transferports')]) |
|||
|
|||
#### operations( = [<DeleteModel name='Switch'>, <RenameModel old_name='NewSw', new_name='Switch'>]) |
|||
## topologie.migrations.0054_auto_20180326_1742 module |
|||
|
|||
|
|||
### class topologie.migrations.0054_auto_20180326_1742.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0053_finalsw')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='accesspoint', options={'permissions': (('view_ap', 'Peut voir une borne'),)}>, <AlterModelOptions name='switch', options={'permissions': (('view_switch', 'Peut voir un objet switch'),)}>, <AlterField model_name='port', name='switch', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>, <AlterUniqueTogether name='port', unique_together={('switch', 'port')}>, <AlterUniqueTogether name='switch', unique_together={('stack', 'stack_member_id')}>]) |
|||
## topologie.migrations.0055_auto_20180329_0431 module |
|||
|
|||
|
|||
### class topologie.migrations.0055_auto_20180329_0431.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0054_auto_20180326_1742')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='accesspoint', options={'permissions': (('view_accesspoint', 'Peut voir une borne'),)}>]) |
|||
## topologie.migrations.0056_building_switchbay module |
|||
|
|||
|
|||
### class topologie.migrations.0056_building_switchbay.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0055_auto_20180329_0431')]) |
|||
|
|||
#### operations( = [<CreateModel name='Building', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>)], options={'permissions': (('view_building', 'Peut voir un objet batiment'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='SwitchBay', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('info', <django.db.models.fields.CharField>), ('building', <django.db.models.fields.related.ForeignKey>), ('members', <django.db.models.fields.related.ManyToManyField>)], options={'permissions': (('view_switchbay', 'Peut voir un objet baie de brassage'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>]) |
|||
## topologie.migrations.0057_auto_20180408_0316 module |
|||
|
|||
|
|||
### class topologie.migrations.0057_auto_20180408_0316.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0056_building_switchbay')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='switchbay', name='members'>, <AddField model_name='switch', name='switchbay', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0058_remove_switch_location module |
|||
|
|||
|
|||
### class topologie.migrations.0058_remove_switch_location.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0057_auto_20180408_0316')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='switch', name='location'>]) |
|||
## topologie.migrations.0059_auto_20180415_2249 module |
|||
|
|||
|
|||
### class topologie.migrations.0059_auto_20180415_2249.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0058_remove_switch_location')]) |
|||
|
|||
#### operations( = [<AlterField model_name='switch', name='model', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switch', name='number', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='stack_member_id', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='switchbay', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0060_server module |
|||
|
|||
|
|||
### class topologie.migrations.0060_server.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0081_auto_20180521_1413'), ('topologie', '0059_auto_20180415_2249')]) |
|||
|
|||
#### operations( = [<CreateModel name='Server', fields=[], options={'proxy': True}, bases=('machines.machine',)>]) |
|||
## topologie.migrations.0061_portprofile module |
|||
|
|||
|
|||
### class topologie.migrations.0061_portprofile.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('machines', '0082_auto_20180525_2209'), ('topologie', '0060_server')]) |
|||
|
|||
#### operations( = [<CreateModel name='PortProfile', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('profil_default', <django.db.models.fields.CharField>), ('radius_type', <django.db.models.fields.CharField>), ('radius_mode', <django.db.models.fields.CharField>), ('speed', <django.db.models.fields.CharField>), ('mac_limit', <django.db.models.fields.IntegerField>), ('flow_control', <django.db.models.fields.BooleanField>), ('dhcp_snooping', <django.db.models.fields.BooleanField>), ('dhcpv6_snooping', <django.db.models.fields.BooleanField>), ('arp_protect', <django.db.models.fields.BooleanField>), ('ra_guard', <django.db.models.fields.BooleanField>), ('loop_protect', <django.db.models.fields.BooleanField>), ('vlan_tagged', <django.db.models.fields.related.ManyToManyField>), ('vlan_untagged', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Port profile', 'permissions': (('view_port_profile', 'Can view a port profile object'),), 'verbose_name_plural': 'Port profiles'}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>, <AddField model_name='port', name='custom_profile', field=<django.db.models.fields.related.ForeignKey>>, <RunPython <function transfer_profil>>, <RemoveField model_name='port', name='radius'>, <RemoveField model_name='port', name='vlan_force'>, <AddField model_name='port', name='state', field=<django.db.models.fields.BooleanField>>]) |
|||
|
|||
### topologie.migrations.0061_portprofile.transfer_profil(apps, schema_editor) |
|||
## topologie.migrations.0062_auto_20180815_1918 module |
|||
|
|||
|
|||
### class topologie.migrations.0062_auto_20180815_1918.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0061_portprofile')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='accesspoint', options={'permissions': (('view_accesspoint', 'Can view an access point object'),), 'verbose_name': 'access point', 'verbose_name_plural': 'access points'}>, <AlterModelOptions name='building', options={'permissions': (('view_building', 'Can view a building object'),), 'verbose_name': 'building', 'verbose_name_plural': 'buildings'}>, <AlterModelOptions name='constructorswitch', options={'permissions': (('view_constructorswitch', 'Can view a switch constructor object'),), 'verbose_name': 'switch constructor', 'verbose_name_plural': 'switch constructors'}>, <AlterModelOptions name='modelswitch', options={'permissions': (('view_modelswitch', 'Can view a switch model object'),), 'verbose_name': 'switch model', 'verbose_name_plural': 'switch models'}>, <AlterModelOptions name='port', options={'permissions': (('view_port', 'Can view a port object'),), 'verbose_name': 'port', 'verbose_name_plural': 'ports'}>, <AlterModelOptions name='portprofile', options={'permissions': (('view_port_profile', 'Can view a port profile object'),), 'verbose_name': 'port profile', 'verbose_name_plural': 'port profiles'}>, <AlterModelOptions name='room', options={'ordering': ['name'], 'permissions': (('view_room', 'Can view a room object'),), 'verbose_name': 'room', 'verbose_name_plural': 'rooms'}>, <AlterModelOptions name='stack', options={'permissions': (('view_stack', 'Can view a stack object'),), 'verbose_name': 'switches stack', 'verbose_name_plural': 'switches stacks'}>, <AlterModelOptions name='switch', options={'permissions': (('view_switch', 'Can view a switch object'),), 'verbose_name': 'switch', 'verbose_name_plural': 'switches'}>, <AlterModelOptions name='switchbay', options={'permissions': (('view_switchbay', 'Can view a switch bay object'),), 'verbose_name': 'switch bay', 'verbose_name_plural': 'switch bays'}>, <AlterField model_name='accesspoint', name='location', field=<django.db.models.fields.CharField>>, <AlterField model_name='port', name='state', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='arp_protect', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='dhcp_snooping', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='dhcpv6_snooping', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='flow_control', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='loop_protect', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='mac_limit', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='portprofile', name='profil_default', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='ra_guard', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='radius_mode', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='radius_type', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='speed', field=<django.db.models.fields.CharField>>, <AlterField model_name='switch', name='model', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switch', name='number', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='stack_member_id', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='switchbay', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switchbay', name='info', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0063_auto_20180919_2225 module |
|||
|
|||
|
|||
### class topologie.migrations.0063_auto_20180919_2225.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('preferences', '0051_auto_20180919_2225'), ('topologie', '0062_auto_20180815_1918')]) |
|||
|
|||
#### operations( = [<AddField model_name='modelswitch', name='firmware', field=<django.db.models.fields.CharField>>, <AddField model_name='switch', name='management_creds', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='switch', name='radius_key', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0064_switch_automatic_provision module |
|||
|
|||
|
|||
### class topologie.migrations.0064_switch_automatic_provision.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0063_auto_20180919_2225')]) |
|||
|
|||
#### operations( = [<AddField model_name='switch', name='automatic_provision', field=<django.db.models.fields.BooleanField>>]) |
|||
## topologie.migrations.0065_auto_20180927_1836 module |
|||
|
|||
|
|||
### class topologie.migrations.0065_auto_20180927_1836.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0064_switch_automatic_provision')]) |
|||
|
|||
#### operations( = [<AlterField model_name='portprofile', name='profil_default', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0066_modelswitch_commercial_name module |
|||
|
|||
|
|||
### class topologie.migrations.0066_modelswitch_commercial_name.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0065_auto_20180927_1836')]) |
|||
|
|||
#### operations( = [<AddField model_name='modelswitch', name='commercial_name', field=<django.db.models.fields.CharField>>]) |
|||
## topologie.migrations.0067_auto_20181230_1819 module |
|||
|
|||
|
|||
### class topologie.migrations.0067_auto_20181230_1819.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0066_modelswitch_commercial_name')]) |
|||
|
|||
#### operations( = [<CreateModel name='ModuleOnSwitch', fields=[('id', <django.db.models.fields.AutoField>), ('slot', <django.db.models.fields.CharField>)], options={'verbose_name': 'link between switchs and modules', 'permissions': (('view_moduleonswitch', 'Can view a moduleonswitch object'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>, <CreateModel name='ModuleSwitch', fields=[('id', <django.db.models.fields.AutoField>), ('reference', <django.db.models.fields.CharField>), ('comment', <django.db.models.fields.CharField>)], options={'verbose_name': 'Module of a switch', 'permissions': (('view_moduleswitch', 'Can view a module object'),)}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>, <AddField model_name='modelswitch', name='is_itself_module', field=<django.db.models.fields.BooleanField>>, <AddField model_name='modelswitch', name='is_modular', field=<django.db.models.fields.BooleanField>>, <AddField model_name='moduleonswitch', name='module', field=<django.db.models.fields.related.ForeignKey>>, <AddField model_name='moduleonswitch', name='switch', field=<django.db.models.fields.related.ForeignKey>>, <AlterUniqueTogether name='moduleonswitch', unique_together={('slot', 'switch')}>]) |
|||
## topologie.migrations.0068_auto_20190102_1758 module |
|||
|
|||
|
|||
### class topologie.migrations.0068_auto_20190102_1758.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0067_auto_20181230_1819')]) |
|||
|
|||
#### operations( = [<AlterField model_name='modelswitch', name='is_itself_module', field=<django.db.models.fields.BooleanField>>]) |
|||
## topologie.migrations.0069_auto_20190108_1439 module |
|||
|
|||
|
|||
### class topologie.migrations.0069_auto_20190108_1439.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0068_auto_20190102_1758')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='moduleonswitch', options={'permissions': (('view_moduleonswitch', 'Can view a link between switch and module object'),), 'verbose_name': 'link between switch and module', 'verbose_name_plural': 'links between switch and module'}>, <AlterModelOptions name='moduleswitch', options={'permissions': (('view_moduleswitch', 'Can view a switch module object'),), 'verbose_name': 'switch module', 'verbose_name_plural': 'switch modules'}>, <AlterField model_name='modelswitch', name='is_itself_module', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='modelswitch', name='is_modular', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='profil_default', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='radius_type', field=<django.db.models.fields.CharField>>, <AlterField model_name='switch', name='automatic_provision', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='switch', name='management_creds', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switch', name='radius_key', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0070_auto_20190218_1743 module |
|||
|
|||
|
|||
### class topologie.migrations.0070_auto_20190218_1743.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### create_dormitory(schema_editor) |
|||
|
|||
#### delete_dormitory(schema_editor) |
|||
|
|||
#### dependencies( = [('topologie', '0069_auto_20190108_1439')]) |
|||
|
|||
#### operations( = [<CreateModel name='Dormitory', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>)], options={'verbose_name': 'dormitory', 'permissions': (('view_dormitory', 'Can view a dormitory object'),), 'verbose_name_plural': 'dormitories'}, bases=(<class 're2o.mixins.AclMixin'>, <class 're2o.mixins.RevMixin'>, <class 'django.db.models.base.Model'>)>, <AddField model_name='building', name='dormitory', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>, <RunPython <function Migration.create_dormitory>, <function Migration.delete_dormitory>>]) |
|||
## topologie.migrations.0071_auto_20190218_1936 module |
|||
|
|||
|
|||
### class topologie.migrations.0071_auto_20190218_1936.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0070_auto_20190218_1743')]) |
|||
|
|||
#### operations( = [<AlterField model_name='room', name='name', field=<django.db.models.fields.CharField>>, <AddField model_name='room', name='building', field=<django.db.models.fields.related.ForeignKey>>, <AlterUniqueTogether name='room', unique_together={('name', 'building')}>, <AlterField model_name='building', name='dormitory', field=<django.db.models.fields.related.ForeignKey>>, <RunPython <function Migration.transfer_room>, <function Migration.untransfer_room>>, <AlterField model_name='room', name='building', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
|
|||
#### transfer_room(schema_editor) |
|||
|
|||
#### untransfer_room(schema_editor) |
|||
## topologie.migrations.0072_auto_20190720_2318 module |
|||
|
|||
|
|||
### class topologie.migrations.0072_auto_20190720_2318.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0071_auto_20190218_1936')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='room', options={'ordering': ['building__name'], 'permissions': (('view_room', 'Can view a room object'),), 'verbose_name': 'room', 'verbose_name_plural': 'rooms'}>, <AddField model_name='portprofile', name='on_dormitory', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='portprofile', name='profil_default', field=<django.db.models.fields.CharField>>, <AlterUniqueTogether name='portprofile', unique_together={('on_dormitory', 'profil_default')}>]) |
|||
## topologie.migrations.0073_auto_20191120_0159 module |
|||
|
|||
|
|||
### class topologie.migrations.0073_auto_20191120_0159.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0072_auto_20190720_2318')]) |
|||
|
|||
#### operations( = [<AlterField model_name='accesspoint', name='location', field=<django.db.models.fields.CharField>>, <AlterField model_name='moduleonswitch', name='slot', field=<django.db.models.fields.CharField>>, <AlterField model_name='moduleswitch', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='moduleswitch', name='reference', field=<django.db.models.fields.CharField>>, <AlterField model_name='port', name='state', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='arp_protect', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='dhcp_snooping', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='dhcpv6_snooping', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='flow_control', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='loop_protect', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='mac_limit', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='portprofile', name='name', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='on_dormitory', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='portprofile', name='profil_default', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='ra_guard', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='portprofile', name='radius_mode', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='radius_type', field=<django.db.models.fields.CharField>>, <AlterField model_name='portprofile', name='speed', field=<django.db.models.fields.CharField>>, <AlterField model_name='switch', name='automatic_provision', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='switch', name='management_creds', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switch', name='model', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='switch', name='number', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='switch', name='radius_key', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## topologie.migrations.0074_auto_20200419_1640 module |
|||
|
|||
|
|||
### class topologie.migrations.0074_auto_20200419_1640.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0073_auto_20191120_0159')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='portprofile', options={'permissions': (('view_portprofile', 'Can view a port profile object'),), 'verbose_name': 'port profile', 'verbose_name_plural': 'port profiles'}>]) |
|||
## Module contents |
|||
@ -1,601 +0,0 @@ |
|||
# users.api package |
|||
|
|||
## Submodules |
|||
|
|||
## users.api.serializers module |
|||
|
|||
|
|||
### class users.api.serializers.AdherentSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.Adherent objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### extra_kwargs( = {'shell': {'view_name': 'shell-detail'}}) |
|||
|
|||
#### fields( = ('name', 'surname', 'pseudo', 'email', 'local_email_redirect', 'local_email_enabled', 'school', 'shell', 'comment', 'state', 'registered', 'telephone', 'room', 'solde', 'access', 'end_access', 'uid', 'api_url', 'gid')) |
|||
|
|||
#### model() |
|||
alias of `users.models.Adherent` |
|||
|
|||
|
|||
### class users.api.serializers.BanSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.Ban objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'raison', 'date_start', 'date_end', 'state', 'active', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.Ban` |
|||
|
|||
|
|||
### class users.api.serializers.BasicUserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize ‘users.models.User’ minimal infos |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('pseudo', 'uid', 'gid')) |
|||
|
|||
#### model() |
|||
alias of `users.models.User` |
|||
|
|||
|
|||
### class users.api.serializers.ClubSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.Club objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### extra_kwargs( = {'shell': {'view_name': 'shell-detail'}}) |
|||
|
|||
#### fields( = ('name', 'pseudo', 'email', 'local_email_redirect', 'local_email_enabled', 'school', 'shell', 'comment', 'state', 'registered', 'telephone', 'solde', 'room', 'access', 'end_access', 'administrators', 'members', 'mailing', 'uid', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.Club` |
|||
|
|||
|
|||
### class users.api.serializers.EMailAddressSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.EMailAddress objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'local_part', 'complete_email_address', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.EMailAddress` |
|||
|
|||
|
|||
### class users.api.serializers.ListRightSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.ListRight objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('unix_name', 'gid', 'critical', 'details', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.ListRight` |
|||
|
|||
|
|||
### class users.api.serializers.LocalEmailUsersSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('local_email_enabled', 'local_email_redirect', 'email_address', 'email')) |
|||
|
|||
#### model() |
|||
alias of `users.models.User` |
|||
|
|||
|
|||
### class users.api.serializers.MailingMemberSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `users.api.serializers.UserSerializer` |
|||
|
|||
Serialize the data about a mailing member. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `users.api.serializers.UserSerializer.Meta` |
|||
|
|||
|
|||
#### fields( = ('name', 'pseudo', 'get_mail')) |
|||
|
|||
### class users.api.serializers.MailingSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `users.api.serializers.ClubSerializer` |
|||
|
|||
Serialize the data about a mailing. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `users.api.serializers.ClubSerializer.Meta` |
|||
|
|||
|
|||
#### fields( = ('name', 'members', 'admins')) |
|||
|
|||
### class users.api.serializers.SchoolSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.School objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('name', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.School` |
|||
|
|||
|
|||
### class users.api.serializers.ServiceUserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.ServiceUser objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('pseudo', 'access_group', 'comment', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.ServiceUser` |
|||
|
|||
|
|||
### class users.api.serializers.ShellSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.ListShell objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### extra_kwargs( = {'api_url': {'view_name': 'shell-detail'}}) |
|||
|
|||
#### fields( = ('shell', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.ListShell` |
|||
|
|||
|
|||
### class users.api.serializers.UserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.User objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### extra_kwargs( = {'shell': {'view_name': 'shell-detail'}}) |
|||
|
|||
#### fields( = ('surname', 'pseudo', 'email', 'local_email_redirect', 'local_email_enabled', 'school', 'shell', 'comment', 'state', 'registered', 'telephone', 'solde', 'access', 'end_access', 'uid', 'class_type', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.User` |
|||
|
|||
|
|||
### class users.api.serializers.WhitelistSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, \*\*kwargs) |
|||
Bases: `api.serializers.NamespacedHMSerializer` |
|||
|
|||
Serialize users.models.Whitelist objects. |
|||
|
|||
|
|||
#### class Meta() |
|||
Bases: `object` |
|||
|
|||
|
|||
#### fields( = ('user', 'raison', 'date_start', 'date_end', 'active', 'api_url')) |
|||
|
|||
#### model() |
|||
alias of `users.models.Whitelist` |
|||
|
|||
## users.api.urls module |
|||
|
|||
## users.api.views module |
|||
|
|||
|
|||
### class users.api.views.AdherentViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.Adherent objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<Adherent: test>, <Adherent: toto>, <Adherent: klafyvel>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.AdherentSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.BanViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.Ban objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.BanSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.ClubMailingView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.ListAPIView` |
|||
|
|||
Exposes list and details of club mailings (name, members and admins) in |
|||
order to build the corresponding mailing lists. |
|||
|
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.MailingSerializer` |
|||
|
|||
|
|||
### class users.api.views.ClubViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.Club objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.ClubSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.CriticalUserViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes infos of |
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
users.models.Users\`without specific rights objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.BasicUserSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.EMailAddressViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.EMailAddress objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### get_queryset() |
|||
Get the list of items for this view. |
|||
This must be an iterable, and may be a queryset. |
|||
Defaults to using self.queryset. |
|||
|
|||
This method should always be used rather than accessing self.queryset |
|||
directly, as self.queryset gets evaluated only once, and those results |
|||
are cached for all subsequent requests. |
|||
|
|||
You may want to override this if you need to provide different |
|||
querysets depending on the incoming request. |
|||
|
|||
(Eg. return a list of items that is specific to the user) |
|||
|
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.EMailAddressSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.HomeCreationViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes infos of users.models.Users objects to create homes. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.BasicUserSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.ListRightViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.ListRight objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<ListRight: bofh>, <ListRight: bureau>, <ListRight: tresorier>, <ListRight: admin>, <ListRight: infra>, <ListRight: serveur>, <ListRight: cableur>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.ListRightSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.LocalEmailUsersView(\*\*kwargs) |
|||
Bases: `rest_framework.generics.ListAPIView` |
|||
|
|||
Exposes all the aliases of the users that activated the internal address |
|||
|
|||
|
|||
#### get_queryset() |
|||
Get the list of items for this view. |
|||
This must be an iterable, and may be a queryset. |
|||
Defaults to using self.queryset. |
|||
|
|||
This method should always be used rather than accessing self.queryset |
|||
directly, as self.queryset gets evaluated only once, and those results |
|||
are cached for all subsequent requests. |
|||
|
|||
You may want to override this if you need to provide different |
|||
querysets depending on the incoming request. |
|||
|
|||
(Eg. return a list of items that is specific to the user) |
|||
|
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.LocalEmailUsersSerializer` |
|||
|
|||
|
|||
### class users.api.views.NormalUserViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes infos of |
|||
|
|||
``` |
|||
` |
|||
``` |
|||
|
|||
users.models.Users\`without specific rights objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<User: klafyvel>, <User: test>, <User: toto>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.BasicUserSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.SchoolViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.School objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.SchoolSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.ServiceUserViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.ServiceUser objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.ServiceUserSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.ShellViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.ListShell objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.ShellSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.StandardMailingView(\*\*kwargs) |
|||
Bases: `rest_framework.views.APIView` |
|||
|
|||
Exposes list and details of standard mailings (name and members) in |
|||
order to building the corresponding mailing lists. |
|||
|
|||
|
|||
#### get(request, format=None) |
|||
|
|||
#### pagination_class() |
|||
alias of `api.pagination.PageSizedPagination` |
|||
|
|||
|
|||
#### permission_classes( = (<class 'api.permissions.ACLPermission'>,)) |
|||
|
|||
#### perms_map( = {'GET': [<function User.can_view_all>]}) |
|||
|
|||
### class users.api.views.UserViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.Users objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet [<User: test>, <User: toto>, <User: klafyvel>]>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.UserSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
|
|||
### class users.api.views.WhitelistViewSet(\*\*kwargs) |
|||
Bases: `rest_framework.viewsets.ReadOnlyModelViewSet` |
|||
|
|||
Exposes list and details of users.models.Whitelist objects. |
|||
|
|||
|
|||
#### basename( = None) |
|||
|
|||
#### description( = None) |
|||
|
|||
#### detail( = None) |
|||
|
|||
#### name( = None) |
|||
|
|||
#### queryset( = <QuerySet []>) |
|||
|
|||
#### serializer_class() |
|||
alias of `users.api.serializers.WhitelistSerializer` |
|||
|
|||
|
|||
#### suffix( = None) |
|||
## Module contents |
|||
@ -1,971 +0,0 @@ |
|||
# users.migrations package |
|||
|
|||
## Submodules |
|||
|
|||
## users.migrations.0001_initial module |
|||
|
|||
|
|||
### class users.migrations.0001_initial.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = []) |
|||
|
|||
#### operations( = [<CreateModel name='School', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>)]>, <CreateModel name='User', fields=[('id', <django.db.models.fields.AutoField>), ('name', <django.db.models.fields.CharField>), ('surname', <django.db.models.fields.CharField>), ('pseudo', <django.db.models.fields.CharField>), ('email', <django.db.models.fields.EmailField>), ('promo', <django.db.models.fields.CharField>), ('pwd_ssha', <django.db.models.fields.CharField>), ('pwd_ntlm', <django.db.models.fields.CharField>), ('state', <django.db.models.fields.CharField>), ('school', <django.db.models.fields.related.ForeignKey>)]>]) |
|||
## users.migrations.0002_auto_20160630_2301 module |
|||
|
|||
|
|||
### class users.migrations.0002_auto_20160630_2301.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0001_initial')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='pseudo', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0003_listrights_rights module |
|||
|
|||
|
|||
### class users.migrations.0003_listrights_rights.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0002_auto_20160630_2301')]) |
|||
|
|||
#### operations( = [<CreateModel name='ListRights', fields=[('id', <django.db.models.fields.AutoField>), ('listright', <django.db.models.fields.CharField>)]>, <CreateModel name='Rights', fields=[('id', <django.db.models.fields.AutoField>), ('right', <django.db.models.fields.related.ForeignKey>), ('user', <django.db.models.fields.related.ForeignKey>)]>]) |
|||
## users.migrations.0004_auto_20160701_2312 module |
|||
|
|||
|
|||
### class users.migrations.0004_auto_20160701_2312.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0003_listrights_rights')]) |
|||
|
|||
#### operations( = [<RenameModel old_name='ListRights', new_name='ListRight'>, <RenameModel old_name='Rights', new_name='Right'>]) |
|||
## users.migrations.0005_auto_20160702_0006 module |
|||
|
|||
|
|||
### class users.migrations.0005_auto_20160702_0006.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0004_auto_20160701_2312')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='right', unique_together={('user', 'right')}>]) |
|||
## users.migrations.0006_ban module |
|||
|
|||
|
|||
### class users.migrations.0006_ban.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0005_auto_20160702_0006')]) |
|||
|
|||
#### operations( = [<CreateModel name='Ban', fields=[('id', <django.db.models.fields.AutoField>), ('raison', <django.db.models.fields.CharField>), ('date_start', <django.db.models.fields.DateTimeField>), ('date_end', <django.db.models.fields.DateTimeField>), ('user', <django.db.models.fields.related.ForeignKey>)]>]) |
|||
## users.migrations.0007_auto_20160702_2322 module |
|||
|
|||
|
|||
### class users.migrations.0007_auto_20160702_2322.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0006_ban')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ban', name='date_start', field=<django.db.models.fields.DateTimeField>>]) |
|||
## users.migrations.0008_user_registered module |
|||
|
|||
|
|||
### class users.migrations.0008_user_registered.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0007_auto_20160702_2322')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='registered', field=<django.db.models.fields.DateTimeField>, preserve_default=False>]) |
|||
## users.migrations.0009_user_room module |
|||
|
|||
|
|||
### class users.migrations.0009_user_room.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0009_auto_20160703_1200'), ('users', '0008_user_registered')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='room', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>]) |
|||
## users.migrations.0010_auto_20160703_1226 module |
|||
|
|||
|
|||
### class users.migrations.0010_auto_20160703_1226.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0009_user_room')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='room', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0011_auto_20160703_1227 module |
|||
|
|||
|
|||
### class users.migrations.0011_auto_20160703_1227.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0010_auto_20160703_1226')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='room', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0012_auto_20160703_1230 module |
|||
|
|||
|
|||
### class users.migrations.0012_auto_20160703_1230.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0011_auto_20160703_1227')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='room', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## users.migrations.0013_auto_20160704_1547 module |
|||
|
|||
|
|||
### class users.migrations.0013_auto_20160704_1547.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0012_auto_20160703_1230')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='promo', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0014_auto_20160704_1548 module |
|||
|
|||
|
|||
### class users.migrations.0014_auto_20160704_1548.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0013_auto_20160704_1547')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='user', name='promo'>, <AlterField model_name='user', name='comment', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0015_whitelist module |
|||
|
|||
|
|||
### class users.migrations.0015_whitelist.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0014_auto_20160704_1548')]) |
|||
|
|||
#### operations( = [<CreateModel name='Whitelist', fields=[('id', <django.db.models.fields.AutoField>), ('raison', <django.db.models.fields.CharField>), ('date_start', <django.db.models.fields.DateTimeField>), ('date_end', <django.db.models.fields.DateTimeField>), ('user', <django.db.models.fields.related.ForeignKey>)]>]) |
|||
## users.migrations.0016_auto_20160706_1220 module |
|||
|
|||
|
|||
### class users.migrations.0016_auto_20160706_1220.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0015_whitelist')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ban', name='date_end', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='user', name='pseudo', field=<django.db.models.fields.CharField>>, <AlterField model_name='whitelist', name='date_end', field=<django.db.models.fields.DateTimeField>>]) |
|||
## users.migrations.0017_auto_20160707_0105 module |
|||
|
|||
|
|||
### class users.migrations.0017_auto_20160707_0105.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0016_auto_20160706_1220')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='last_login', field=<django.db.models.fields.DateTimeField>>, <AddField model_name='user', name='password', field=<django.db.models.fields.CharField>, preserve_default=False>, <RunPython <function move_passwords> reverse_code=<function RunPython.noop>>]) |
|||
|
|||
### users.migrations.0017_auto_20160707_0105.move_passwords(apps, schema_editor) |
|||
## users.migrations.0018_auto_20160707_0115 module |
|||
|
|||
|
|||
### class users.migrations.0018_auto_20160707_0115.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0017_auto_20160707_0105')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='user', name='pwd_ssha'>]) |
|||
## users.migrations.0019_auto_20160708_1633 module |
|||
|
|||
|
|||
### class users.migrations.0019_auto_20160708_1633.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0018_auto_20160707_0115')]) |
|||
|
|||
#### operations( = [<AlterField model_name='listright', name='listright', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0020_request module |
|||
|
|||
|
|||
### class users.migrations.0020_request.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0019_auto_20160708_1633')]) |
|||
|
|||
#### operations( = [<CreateModel name='Request', fields=[('id', <django.db.models.fields.AutoField>), ('type', <django.db.models.fields.CharField>), ('token', <django.db.models.fields.CharField>), ('created_at', <django.db.models.fields.DateTimeField>), ('expires_at', <django.db.models.fields.DateTimeField>), ('user', <django.db.models.fields.related.ForeignKey>)]>]) |
|||
## users.migrations.0021_ldapuser module |
|||
|
|||
|
|||
### class users.migrations.0021_ldapuser.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0020_request')]) |
|||
|
|||
#### operations( = [<CreateModel name='LdapUser', fields=[('dn', <django.db.models.fields.CharField>), ('gid', <ldapdb.models.fields.IntegerField>), ('name', <ldapdb.models.fields.CharField>), ('uid', <ldapdb.models.fields.CharField>), ('uidNumber', <ldapdb.models.fields.IntegerField>), ('sn', <ldapdb.models.fields.CharField>), ('loginShell', <ldapdb.models.fields.CharField>), ('mail', <ldapdb.models.fields.CharField>), ('given_name', <ldapdb.models.fields.CharField>), ('home_directory', <ldapdb.models.fields.CharField>), ('dialupAccess', <ldapdb.models.fields.CharField>), ('mac_list', <ldapdb.models.fields.CharField>)], options={'abstract': False}>]) |
|||
## users.migrations.0022_ldapuser_sambasid module |
|||
|
|||
|
|||
### class users.migrations.0022_ldapuser_sambasid.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0021_ldapuser')]) |
|||
|
|||
#### operations( = [<SeparateDatabaseAndState state_operations=[<AddField model_name='ldapuser', name='sambaSID', field=<ldapdb.models.fields.IntegerField>, preserve_default=False>], database_operations=[<RunSQL 'ALTER TABLE "users_ldapuser" ADD COLUMN "sambaSID" integer NULL UNIQUE;'>]>]) |
|||
## users.migrations.0023_auto_20160724_1908 module |
|||
|
|||
|
|||
### class users.migrations.0023_auto_20160724_1908.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0022_ldapuser_sambasid')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapuser', name='sambaSID', field=<ldapdb.models.fields.IntegerField>>]) |
|||
## users.migrations.0024_remove_ldapuser_mac_list module |
|||
|
|||
|
|||
### class users.migrations.0024_remove_ldapuser_mac_list.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0023_auto_20160724_1908')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='ldapuser', name='mac_list'>]) |
|||
## users.migrations.0025_listshell module |
|||
|
|||
|
|||
### class users.migrations.0025_listshell.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0024_remove_ldapuser_mac_list')]) |
|||
|
|||
#### operations( = [<CreateModel name='ListShell', fields=[('id', <django.db.models.fields.AutoField>), ('shell', <django.db.models.fields.CharField>)]>]) |
|||
## users.migrations.0026_user_shell module |
|||
|
|||
|
|||
### class users.migrations.0026_user_shell.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0025_listshell')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='shell', field=<django.db.models.fields.related.ForeignKey>, preserve_default=False>]) |
|||
## users.migrations.0027_auto_20160726_0216 module |
|||
|
|||
|
|||
### class users.migrations.0027_auto_20160726_0216.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0026_user_shell')]) |
|||
|
|||
#### operations( = [<CreateModel name='LdapUserGroup', fields=[('dn', <django.db.models.fields.CharField>), ('gid', <ldapdb.models.fields.IntegerField>), ('members', <ldapdb.models.fields.ListField>), ('name', <ldapdb.models.fields.CharField>)], options={'abstract': False}>]) |
|||
## users.migrations.0028_auto_20160726_0227 module |
|||
|
|||
|
|||
### class users.migrations.0028_auto_20160726_0227.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0027_auto_20160726_0216')]) |
|||
|
|||
#### operations( = [<SeparateDatabaseAndState state_operations=[<AddField model_name='ldapuser', name='display_name', field=<ldapdb.models.fields.CharField>>, <AddField model_name='ldapuser', name='sambat_nt_password', field=<ldapdb.models.fields.CharField>>, <AddField model_name='ldapuser', name='user_password', field=<ldapdb.models.fields.CharField>>], database_operations=[<RunSQL 'ALTER TABLE users_ldapuser ADD COLUMN "displayName" varchar(200) NULL;'>, <RunSQL 'ALTER TABLE users_ldapuser ADD COLUMN "sambaNTPassword" varchar(200) NULL;'>, <RunSQL 'ALTER TABLE users_ldapuser ADD COLUMN "userPassword" varchar(200) NULL;'>]>, <AddField model_name='ldapuser', name='macs', field=<ldapdb.models.fields.ListField>>, <AddField model_name='listright', name='gid', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='user', name='shell', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0029_auto_20160726_0229 module |
|||
|
|||
|
|||
### class users.migrations.0029_auto_20160726_0229.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0028_auto_20160726_0227')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapuser', name='display_name', field=<ldapdb.models.fields.CharField>>]) |
|||
## users.migrations.0030_auto_20160726_0357 module |
|||
|
|||
|
|||
### class users.migrations.0030_auto_20160726_0357.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0029_auto_20160726_0229')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapuser', name='display_name', field=<ldapdb.models.fields.CharField>>]) |
|||
## users.migrations.0031_auto_20160726_0359 module |
|||
|
|||
|
|||
### class users.migrations.0031_auto_20160726_0359.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0030_auto_20160726_0357')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='shell', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0032_auto_20160727_2122 module |
|||
|
|||
|
|||
### class users.migrations.0032_auto_20160727_2122.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0031_auto_20160726_0359')]) |
|||
|
|||
#### operations( = [<CreateModel name='LdapServiceUser', fields=[('dn', <django.db.models.fields.CharField>), ('name', <ldapdb.models.fields.CharField>), ('user_password', <ldapdb.models.fields.CharField>)], options={'abstract': False}>, <CreateModel name='ServiceUser', fields=[('id', <django.db.models.fields.AutoField>), ('password', <django.db.models.fields.CharField>), ('last_login', <django.db.models.fields.DateTimeField>), ('pseudo', <django.db.models.fields.CharField>)], options={'abstract': False}>]) |
|||
## users.migrations.0033_remove_ldapuser_loginshell module |
|||
|
|||
|
|||
### class users.migrations.0033_remove_ldapuser_loginshell.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0032_auto_20160727_2122')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='ldapuser', name='loginShell'>]) |
|||
## users.migrations.0034_auto_20161018_0037 module |
|||
|
|||
|
|||
### class users.migrations.0034_auto_20161018_0037.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0033_remove_ldapuser_loginshell')]) |
|||
|
|||
#### operations( = [<SeparateDatabaseAndState state_operations=[<AddField model_name='ldapuser', name='login_shell', field=<ldapdb.models.fields.CharField>>], database_operations=[<RunSQL 'ALTER TABLE users_ldapuser ADD COLUMN "loginShell" varchar(200) NULL;'>]>, <AddField model_name='user', name='rezo_rez_uid', field=<django.db.models.fields.IntegerField>>, <AddField model_name='user', name='uid_number', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='user', name='school', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0035_auto_20161018_0046 module |
|||
|
|||
|
|||
### class users.migrations.0035_auto_20161018_0046.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0034_auto_20161018_0037')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='uid_number', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0036_auto_20161022_2146 module |
|||
|
|||
|
|||
### class users.migrations.0036_auto_20161022_2146.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0035_auto_20161018_0046')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0037_auto_20161028_1906 module |
|||
|
|||
|
|||
### class users.migrations.0037_auto_20161028_1906.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0036_auto_20161022_2146')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0038_auto_20161031_0258 module |
|||
|
|||
|
|||
### class users.migrations.0038_auto_20161031_0258.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0037_auto_20161028_1906')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0039_auto_20161119_0033 module |
|||
|
|||
|
|||
### class users.migrations.0039_auto_20161119_0033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0038_auto_20161031_0258')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0040_auto_20161119_1709 module |
|||
|
|||
|
|||
### class users.migrations.0040_auto_20161119_1709.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0039_auto_20161119_0033')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0041_listright_details module |
|||
|
|||
|
|||
### class users.migrations.0041_listright_details.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0040_auto_20161119_1709')]) |
|||
|
|||
#### operations( = [<AddField model_name='listright', name='details', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0042_auto_20161126_2028 module |
|||
|
|||
|
|||
### class users.migrations.0042_auto_20161126_2028.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0041_listright_details')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0043_auto_20161224_1156 module |
|||
|
|||
|
|||
### class users.migrations.0043_auto_20161224_1156.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0042_auto_20161126_2028')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0043_ban_state module |
|||
|
|||
|
|||
### class users.migrations.0043_ban_state.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0042_auto_20161126_2028')]) |
|||
|
|||
#### operations( = [<AddField model_name='ban', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0044_user_ssh_public_key module |
|||
|
|||
|
|||
### class users.migrations.0044_user_ssh_public_key.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0043_auto_20161224_1156')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='ssh_public_key', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0045_merge module |
|||
|
|||
|
|||
### class users.migrations.0045_merge.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0043_ban_state'), ('users', '0044_user_ssh_public_key')]) |
|||
|
|||
#### operations( = []) |
|||
## users.migrations.0046_auto_20170617_1433 module |
|||
|
|||
|
|||
### class users.migrations.0046_auto_20170617_1433.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0045_merge')]) |
|||
|
|||
#### operations( = [<RemoveField model_name='user', name='ssh_public_key'>, <AlterField model_name='ban', name='state', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='ldapserviceuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<django.db.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0047_auto_20170618_0156 module |
|||
|
|||
|
|||
### class users.migrations.0047_auto_20170618_0156.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0046_auto_20170617_1433')]) |
|||
|
|||
#### operations( = [<CreateModel name='LdapServiceUserGroup', fields=[('dn', <django.db.models.fields.CharField>), ('name', <ldapdb.models.fields.CharField>), ('members', <ldapdb.models.fields.ListField>)], options={'abstract': False}>, <AddField model_name='serviceuser', name='access_group', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0048_auto_20170618_0210 module |
|||
|
|||
|
|||
### class users.migrations.0048_auto_20170618_0210.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0047_auto_20170618_0156')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapserviceusergroup', name='name', field=<ldapdb.models.fields.CharField>>]) |
|||
## users.migrations.0049_auto_20170618_1424 module |
|||
|
|||
|
|||
### class users.migrations.0049_auto_20170618_1424.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0048_auto_20170618_0210')]) |
|||
|
|||
#### operations( = [<AlterField model_name='serviceuser', name='access_group', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0050_serviceuser_comment module |
|||
|
|||
|
|||
### class users.migrations.0050_serviceuser_comment.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0049_auto_20170618_1424')]) |
|||
|
|||
#### operations( = [<AddField model_name='serviceuser', name='comment', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0051_user_telephone module |
|||
|
|||
|
|||
### class users.migrations.0051_user_telephone.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0050_serviceuser_comment')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='telephone', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0052_ldapuser_shadowexpire module |
|||
|
|||
|
|||
### class users.migrations.0052_ldapuser_shadowexpire.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0051_user_telephone')]) |
|||
|
|||
#### operations( = [<SeparateDatabaseAndState state_operations=[<AddField model_name='ldapuser', name='shadowexpire', field=<ldapdb.models.fields.CharField>>], database_operations=[<RunSQL 'ALTER TABLE users_ldapuser ADD COLUMN "shadowExpire" varchar(200) NULL;'>]>]) |
|||
## users.migrations.0053_auto_20170626_2105 module |
|||
|
|||
|
|||
### class users.migrations.0053_auto_20170626_2105.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0052_ldapuser_shadowexpire')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapuser', name='shadowexpire', field=<ldapdb.models.fields.IntegerField>>]) |
|||
## users.migrations.0054_auto_20170626_2219 module |
|||
|
|||
|
|||
### class users.migrations.0054_auto_20170626_2219.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0053_auto_20170626_2105')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ldapuser', name='shadowexpire', field=<ldapdb.models.fields.CharField>>]) |
|||
## users.migrations.0055_auto_20171003_0556 module |
|||
|
|||
|
|||
### class users.migrations.0055_auto_20171003_0556.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0054_auto_20170626_2219')]) |
|||
|
|||
#### operations( = [<AlterField model_name='listright', name='listright', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0056_auto_20171015_2033 module |
|||
|
|||
|
|||
### class users.migrations.0056_auto_20171015_2033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0055_auto_20171003_0556')]) |
|||
|
|||
#### operations( = [<AlterField model_name='listright', name='gid', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='listright', name='listright', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='rezo_rez_uid', field=<django.db.models.fields.PositiveIntegerField>>, <AlterField model_name='user', name='uid_number', field=<django.db.models.fields.PositiveIntegerField>>]) |
|||
## users.migrations.0057_auto_20171023_0301 module |
|||
|
|||
|
|||
### class users.migrations.0057_auto_20171023_0301.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0056_auto_20171015_2033')]) |
|||
|
|||
#### operations( = [<CreateModel name='Adherent', fields=[('user_ptr', <django.db.models.fields.related.OneToOneField>), ('usname', <django.db.models.fields.CharField>)], options={'abstract': False}, bases=('users.user',)>, <CreateModel name='Club', fields=[('user_ptr', <django.db.models.fields.related.OneToOneField>)], options={'abstract': False}, bases=('users.user',)>, <RunSQL 'insert into users_adherent (user_ptr_id, usname) select id, name from users_user' reverse_sql='insert into users_user (name) select usname from users_adherent'>, <RemoveField model_name='user', name='name'>, <RenameField model_name='adherent', old_name='usname', new_name='name'>]) |
|||
## users.migrations.0058_auto_20171025_0154 module |
|||
|
|||
|
|||
### class users.migrations.0058_auto_20171025_0154.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('topologie', '0031_auto_20171015_2033'), ('users', '0057_auto_20171023_0301')]) |
|||
|
|||
#### operations( = [<AddField model_name='adherent', name='room_adherent', field=<django.db.models.fields.related.OneToOneField>>, <AddField model_name='club', name='room_club', field=<django.db.models.fields.related.ForeignKey>>, <RunPython <function create_move_room>, <function delete_move_room>>, <RemoveField model_name='user', name='room'>]) |
|||
|
|||
### users.migrations.0058_auto_20171025_0154.create_move_room(apps, schema_editor) |
|||
|
|||
### users.migrations.0058_auto_20171025_0154.delete_move_room(apps, schema_editor) |
|||
## users.migrations.0059_auto_20171025_1854 module |
|||
|
|||
|
|||
### class users.migrations.0059_auto_20171025_1854.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0058_auto_20171025_0154')]) |
|||
|
|||
#### operations( = [<RenameField model_name='adherent', old_name='room_adherent', new_name='room'>, <RenameField model_name='club', old_name='room_club', new_name='room'>]) |
|||
## users.migrations.0060_auto_20171120_0317 module |
|||
|
|||
|
|||
### class users.migrations.0060_auto_20171120_0317.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0059_auto_20171025_1854')]) |
|||
|
|||
#### operations( = [<AddField model_name='club', name='administrators', field=<django.db.models.fields.related.ManyToManyField>>, <AddField model_name='club', name='members', field=<django.db.models.fields.related.ManyToManyField>>]) |
|||
## users.migrations.0061_auto_20171230_2033 module |
|||
|
|||
|
|||
### class users.migrations.0061_auto_20171230_2033.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('auth', '0008_alter_user_username_max_length'), ('users', '0060_auto_20171120_0317')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='groups', field=<django.db.models.fields.related.ManyToManyField>>, <AddField model_name='user', name='is_superuser', field=<django.db.models.fields.BooleanField>>, <AddField model_name='user', name='user_permissions', field=<django.db.models.fields.related.ManyToManyField>>]) |
|||
## users.migrations.0062_auto_20171231_0056 module |
|||
|
|||
|
|||
### class users.migrations.0062_auto_20171231_0056.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### create_groups(schema_editor) |
|||
|
|||
#### delete_groups(schema_editor) |
|||
|
|||
#### dependencies( = [('auth', '0008_alter_user_username_max_length'), ('users', '0061_auto_20171230_2033')]) |
|||
|
|||
#### operations( = [<RenameField model_name='listright', old_name='listright', new_name='unix_name'>, <AddField model_name='listright', name='group_ptr', field=<django.db.models.fields.related.OneToOneField>, preserve_default=False>, <RunPython <function Migration.create_groups>, <function Migration.delete_groups>>]) |
|||
## users.migrations.0063_auto_20171231_0140 module |
|||
|
|||
|
|||
### class users.migrations.0063_auto_20171231_0140.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0062_auto_20171231_0056')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_right>, <function Migration.untransfer_right>>]) |
|||
|
|||
#### transfer_right(schema_editor) |
|||
|
|||
#### untransfer_right(schema_editor) |
|||
## users.migrations.0064_auto_20171231_0150 module |
|||
|
|||
|
|||
### class users.migrations.0064_auto_20171231_0150.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0063_auto_20171231_0140')]) |
|||
|
|||
#### operations( = [<AlterUniqueTogether name='right', unique_together=set()>, <RemoveField model_name='right', name='right'>, <RemoveField model_name='right', name='user'>, <DeleteModel name='Right'>, <RemoveField model_name='listright', name='id'>, <AlterField model_name='listright', name='group_ptr', field=<django.db.models.fields.related.OneToOneField>>]) |
|||
## users.migrations.0065_auto_20171231_2053 module |
|||
|
|||
|
|||
### class users.migrations.0065_auto_20171231_2053.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0064_auto_20171231_0150')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='ban', options={'permissions': (('view_ban', "Peut voir un objet ban quelqu'il soit"),)}>, <AlterModelOptions name='listright', options={'permissions': (('view_listright', 'Peut voir un objet Group/ListRight'),)}>, <AlterModelOptions name='school', options={'permissions': (('view_school', 'Peut voir un objet school'),)}>, <AlterModelOptions name='serviceuser', options={'permissions': (('view_serviceuser', 'Peut voir un objet serviceuser'),)}>, <AlterModelOptions name='user', options={'permissions': (('change_user_password', "Peut changer le mot de passe d'un user"), ('change_user_state', "Peut éditer l'etat d'un user"), ('change_user_force', 'Peut forcer un déménagement'), ('change_user_shell', "Peut éditer le shell d'un user"), ('change_user_groups', "Peut éditer les groupes d'un user ! Permission critique"), ('view_user', 'Peut voir un objet user quelquonque'))}>, <AlterModelOptions name='whitelist', options={'permissions': (('view_whitelist', 'Peut voir un objet whitelist'),)}>]) |
|||
## users.migrations.0066_grouppermissions module |
|||
|
|||
|
|||
### class users.migrations.0066_grouppermissions.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0065_auto_20171231_2053'), ('cotisations', '0028_auto_20171231_0007'), ('machines', '0071_auto_20171231_2100'), ('preferences', '0025_auto_20171231_2142'), ('topologie', '0033_auto_20171231_1743')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_permissions>, <function Migration.untransfer_permissions>>]) |
|||
|
|||
#### transfer_permissions(schema_editor) |
|||
|
|||
#### untransfer_permissions(schema_editor) |
|||
## users.migrations.0067_serveurpermission module |
|||
|
|||
|
|||
### class users.migrations.0067_serveurpermission.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0066_grouppermissions')]) |
|||
|
|||
#### operations( = [<RunPython <function Migration.transfer_permissions>, <function Migration.untransfer_permissions>>]) |
|||
|
|||
#### transfer_permissions(schema_editor) |
|||
|
|||
#### untransfer_permissions(schema_editor) |
|||
## users.migrations.0068_auto_20180107_2245 module |
|||
|
|||
|
|||
### class users.migrations.0068_auto_20180107_2245.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0067_serveurpermission')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='user', options={'permissions': (('change_user_password', "Peut changer le mot de passe d'un user"), ('change_user_state', "Peut éditer l'etat d'un user"), ('change_user_force', 'Peut forcer un déménagement'), ('change_user_shell', "Peut éditer le shell d'un user"), ('change_user_groups', "Peut éditer les groupes d'un user ! Permission critique"), ('change_all_users', 'Peut éditer tous les users, y compris ceux dotés de droits. Superdroit'), ('view_user', 'Peut voir un objet user quelquonque'))}>, <AddField model_name='listright', name='critical', field=<django.db.models.fields.BooleanField>>, <RunPython <function Migration.transfer_permissions>, <function Migration.untransfer_permissions>>]) |
|||
|
|||
#### transfer_permissions(schema_editor) |
|||
|
|||
#### untransfer_permissions(schema_editor) |
|||
## users.migrations.0069_club_mailing module |
|||
|
|||
|
|||
### class users.migrations.0069_club_mailing.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0068_auto_20180107_2245')]) |
|||
|
|||
#### operations( = [<AddField model_name='club', name='mailing', field=<django.db.models.fields.BooleanField>>]) |
|||
## users.migrations.0070_auto_20180324_1906 module |
|||
|
|||
|
|||
### class users.migrations.0070_auto_20180324_1906.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0069_club_mailing')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='listshell', options={'permissions': (('view_listshell', "Peut voir un objet shell quelqu'il soit"),)}>]) |
|||
## users.migrations.0071_auto_20180415_1252 module |
|||
|
|||
|
|||
### class users.migrations.0071_auto_20180415_1252.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0070_auto_20180324_1906')]) |
|||
|
|||
#### operations( = [<AlterField model_name='listright', name='unix_name', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0072_auto_20180426_2021 module |
|||
|
|||
|
|||
### class users.migrations.0072_auto_20180426_2021.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0071_auto_20180415_1252')]) |
|||
|
|||
#### operations( = [<AlterField model_name='ban', name='date_end', field=<django.db.models.fields.DateTimeField>>, <AlterField model_name='whitelist', name='date_end', field=<django.db.models.fields.DateTimeField>>]) |
|||
## users.migrations.0073_auto_20180629_1614 module |
|||
|
|||
|
|||
### class users.migrations.0073_auto_20180629_1614.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### create_initial_email_address(schema_editor) |
|||
|
|||
#### delete_all_email_address(schema_editor) |
|||
|
|||
#### dependencies( = [('users', '0072_auto_20180426_2021')]) |
|||
|
|||
#### operations( = [<CreateModel name='EMailAddress', fields=[('id', <django.db.models.fields.AutoField>), ('local_part', <django.db.models.fields.CharField>), ('user', <django.db.models.fields.related.ForeignKey>)], bases=(<class 're2o.mixins.RevMixin'>, <class 're2o.mixins.AclMixin'>, <class 'django.db.models.base.Model'>), options={'permissions': (('view_emailaddress', 'Can see a local email account object'),), 'verbose_name': 'Local email account', 'verbose_name_plural': 'Local email accounts'}>, <AddField model_name='user', name='local_email_enabled', field=<django.db.models.fields.BooleanField>>, <AddField model_name='user', name='local_email_redirect', field=<django.db.models.fields.BooleanField>>, <RunPython <function Migration.create_initial_email_address>, <function Migration.delete_all_email_address>>]) |
|||
## users.migrations.0074_auto_20180810_2104 module |
|||
|
|||
|
|||
### class users.migrations.0074_auto_20180810_2104.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0073_auto_20180629_1614')]) |
|||
|
|||
#### operations( = [<AddField model_name='adherent', name='gpg_fingerprint', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0074_auto_20180814_1059 module |
|||
|
|||
|
|||
### class users.migrations.0074_auto_20180814_1059.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0073_auto_20180629_1614')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='email', field=<django.db.models.fields.EmailField>>, <AlterField model_name='user', name='local_email_enabled', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='user', name='local_email_redirect', field=<django.db.models.fields.BooleanField>>]) |
|||
## users.migrations.0075_merge_20180815_2202 module |
|||
|
|||
|
|||
### class users.migrations.0075_merge_20180815_2202.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0074_auto_20180814_1059'), ('users', '0074_auto_20180810_2104')]) |
|||
|
|||
#### operations( = []) |
|||
## users.migrations.0076_auto_20180818_1321 module |
|||
|
|||
|
|||
### class users.migrations.0076_auto_20180818_1321.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0075_merge_20180815_2202')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='adherent', options={'verbose_name': 'member', 'verbose_name_plural': 'members'}>, <AlterModelOptions name='ban', options={'permissions': (('view_ban', 'Can view a ban object'),), 'verbose_name': 'ban', 'verbose_name_plural': 'bans'}>, <AlterModelOptions name='club', options={'verbose_name': 'club', 'verbose_name_plural': 'clubs'}>, <AlterModelOptions name='emailaddress', options={'permissions': (('view_emailaddress', 'Can view a local email account object'),), 'verbose_name': 'local email account', 'verbose_name_plural': 'local email accounts'}>, <AlterModelOptions name='listright', options={'permissions': (('view_listright', 'Can view a group of rights object'),), 'verbose_name': 'group of rights', 'verbose_name_plural': 'groups of rights'}>, <AlterModelOptions name='listshell', options={'permissions': (('view_listshell', 'Can view a shell object'),), 'verbose_name': 'shell', 'verbose_name_plural': 'shells'}>, <AlterModelOptions name='school', options={'permissions': (('view_school', 'Can view a school object'),), 'verbose_name': 'school', 'verbose_name_plural': 'schools'}>, <AlterModelOptions name='serviceuser', options={'permissions': (('view_serviceuser', 'Can view a service user object'),), 'verbose_name': 'service user', 'verbose_name_plural': 'service users'}>, <AlterModelOptions name='user', options={'permissions': (('change_user_password', 'Can change the password of a user'), ('change_user_state', 'Can edit the state of a user'), ('change_user_force', 'Can force the move'), ('change_user_shell', 'Can edit the shell of a user'), ('change_user_groups', 'Can edit the groups of rights of a user (critical permission)'), ('change_all_users', 'Can edit all users, including those with rights.'), ('view_user', 'Can view a user object')), 'verbose_name': 'user (member or club)', 'verbose_name_plural': 'users (members or clubs)'}>, <AlterModelOptions name='whitelist', options={'permissions': (('view_whitelist', 'Can view a whitelist object'),), 'verbose_name': 'whitelist (free of charge access)', 'verbose_name_plural': 'whitelists (free of charge access)'}>, <AlterField model_name='adherent', name='gpg_fingerprint', field=<django.db.models.fields.CharField>>, <AlterField model_name='ban', name='state', field=<django.db.models.fields.IntegerField>>, <AlterField model_name='emailaddress', name='user', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='listright', name='unix_name', field=<django.db.models.fields.CharField>>, <AlterField model_name='request', name='type', field=<django.db.models.fields.CharField>>, <AlterField model_name='serviceuser', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='serviceuser', name='pseudo', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='local_email_redirect', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='user', name='pseudo', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0077_auto_20180824_1750 module |
|||
|
|||
|
|||
### class users.migrations.0077_auto_20180824_1750.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0076_auto_20180818_1321')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0078_auto_20181011_1405 module |
|||
|
|||
|
|||
### class users.migrations.0078_auto_20181011_1405.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0077_auto_20180824_1750')]) |
|||
|
|||
#### operations( = [<AlterField model_name='request', name='user', field=<django.db.models.fields.related.ForeignKey>>]) |
|||
## users.migrations.0079_auto_20181228_2039 module |
|||
|
|||
|
|||
### class users.migrations.0079_auto_20181228_2039.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0078_auto_20181011_1405')]) |
|||
|
|||
#### operations( = [<AlterField model_name='adherent', name='gpg_fingerprint', field=<django.db.models.fields.CharField>>]) |
|||
## users.migrations.0080_auto_20190108_1726 module |
|||
|
|||
|
|||
### class users.migrations.0080_auto_20190108_1726.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0079_auto_20181228_2039')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0081_auto_20190317_0302 module |
|||
|
|||
|
|||
### class users.migrations.0081_auto_20190317_0302.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0080_auto_20190108_1726')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0082_auto_20190908_1338 module |
|||
|
|||
|
|||
### class users.migrations.0082_auto_20190908_1338.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0081_auto_20190317_0302')]) |
|||
|
|||
#### operations( = [<SeparateDatabaseAndState state_operations=[<AlterField model_name='ldapserviceuser', name='dn', field=<ldapdb.models.fields.CharField>>, <AlterField model_name='ldapserviceusergroup', name='dn', field=<ldapdb.models.fields.CharField>>, <AlterField model_name='ldapuser', name='dn', field=<ldapdb.models.fields.CharField>>, <AlterField model_name='ldapusergroup', name='dn', field=<ldapdb.models.fields.CharField>>]>]) |
|||
## users.migrations.0083_user_shortcuts_enabled module |
|||
|
|||
|
|||
### class users.migrations.0083_user_shortcuts_enabled.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0082_auto_20190908_1338')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='shortcuts_enabled', field=<django.db.models.fields.BooleanField>>]) |
|||
## users.migrations.0084_auto_20191120_0159 module |
|||
|
|||
|
|||
### class users.migrations.0084_auto_20191120_0159.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0083_user_shortcuts_enabled')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='user', options={'permissions': (('change_user_password', 'Can change the password of a user'), ('change_user_state', 'Can edit the state of a user'), ('change_user_force', 'Can force the move'), ('change_user_shell', 'Can edit the shell of a user'), ('change_user_groups', 'Can edit the groups of rights of a user (critical permission)'), ('change_all_users', 'Can edit all users, including those with rights'), ('view_user', 'Can view a user object')), 'verbose_name': 'user (member or club)', 'verbose_name_plural': 'users (members or clubs)'}>, <AlterField model_name='emailaddress', name='local_part', field=<django.db.models.fields.CharField>>, <AlterField model_name='emailaddress', name='user', field=<django.db.models.fields.related.ForeignKey>>, <AlterField model_name='listright', name='details', field=<django.db.models.fields.CharField>>, <AlterField model_name='listright', name='unix_name', field=<django.db.models.fields.CharField>>, <AlterField model_name='serviceuser', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='comment', field=<django.db.models.fields.CharField>>, <AlterField model_name='user', name='shortcuts_enabled', field=<django.db.models.fields.BooleanField>>, <AlterField model_name='user', name='state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0085_user_email_state module |
|||
|
|||
|
|||
### class users.migrations.0085_user_email_state.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0084_auto_20191120_0159')]) |
|||
|
|||
#### flag_verified(schema_editor) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='email_state', field=<django.db.models.fields.IntegerField>>, <RunPython <function Migration.flag_verified>, <function Migration.undo_flag_verified>>]) |
|||
|
|||
#### undo_flag_verified(schema_editor) |
|||
## users.migrations.0086_user_email_change_date module |
|||
|
|||
|
|||
### class users.migrations.0086_user_email_change_date.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0085_user_email_state')]) |
|||
|
|||
#### operations( = [<AddField model_name='user', name='email_change_date', field=<django.db.models.fields.DateTimeField>>]) |
|||
## users.migrations.0087_request_email module |
|||
|
|||
|
|||
### class users.migrations.0087_request_email.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0086_user_email_change_date')]) |
|||
|
|||
#### operations( = [<AddField model_name='request', name='email', field=<django.db.models.fields.EmailField>>]) |
|||
## users.migrations.0088_auto_20200417_2312 module |
|||
|
|||
|
|||
### class users.migrations.0088_auto_20200417_2312.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0087_request_email')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='email_change_date', field=<django.db.models.fields.DateTimeField>, preserve_default=False>]) |
|||
## users.migrations.0089_auto_20200418_0112 module |
|||
|
|||
|
|||
### class users.migrations.0089_auto_20200418_0112.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0088_auto_20200417_2312')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='email_state', field=<django.db.models.fields.IntegerField>>]) |
|||
## users.migrations.0090_auto_20200421_1825 module |
|||
|
|||
|
|||
### class users.migrations.0090_auto_20200421_1825.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0089_auto_20200418_0112')]) |
|||
|
|||
#### operations( = [<AlterField model_name='user', name='email', field=<django.db.models.fields.EmailField>>]) |
|||
## users.migrations.0091_auto_20200423_1256 module |
|||
|
|||
|
|||
### class users.migrations.0091_auto_20200423_1256.Migration(name, app_label) |
|||
Bases: `django.db.migrations.migration.Migration` |
|||
|
|||
|
|||
#### dependencies( = [('users', '0090_auto_20200421_1825')]) |
|||
|
|||
#### operations( = [<AlterModelOptions name='user', options={'permissions': (('change_user_password', 'Can change the password of a user'), ('change_user_state', 'Can edit the state of a user'), ('change_user_force', 'Can force the move'), ('change_user_shell', 'Can edit the shell of a user'), ('change_user_pseudo', 'Can edit the pseudo of a user'), ('change_user_groups', 'Can edit the groups of rights of a user (critical permission)'), ('change_all_users', 'Can edit all users, including those with rights'), ('view_user', 'Can view a user object')), 'verbose_name': 'user (member or club)', 'verbose_name_plural': 'users (members or clubs)'}>]) |
|||
## users.migrations.0092_auto_20200423_1804 module |
|||
|
|||
## Module contents |
|||
@ -1,782 +0,0 @@ |
|||
<!-- Re2o documentation master file, created by |
|||
sphinx-quickstart on Sat May 16 14:17:06 2020. |
|||
You can adapt this file completely to your liking, but it should at least |
|||
contain the root `toctree` directive. --> |
|||
# Welcome to Re2o’s documentation! |
|||
|
|||
|
|||
* api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* api.acl module |
|||
|
|||
|
|||
* api.authentication module |
|||
|
|||
|
|||
* api.pagination module |
|||
|
|||
|
|||
* api.permissions module |
|||
|
|||
|
|||
* api.routers module |
|||
|
|||
|
|||
* api.serializers module |
|||
|
|||
|
|||
* api.settings module |
|||
|
|||
|
|||
* api.tests module |
|||
|
|||
|
|||
* api.urls module |
|||
|
|||
|
|||
* api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.acl module |
|||
|
|||
|
|||
* cotisations.admin module |
|||
|
|||
|
|||
* cotisations.forms module |
|||
|
|||
|
|||
* cotisations.models module |
|||
|
|||
|
|||
* cotisations.test_models module |
|||
|
|||
|
|||
* cotisations.test_views module |
|||
|
|||
|
|||
* cotisations.tex module |
|||
|
|||
|
|||
* cotisations.urls module |
|||
|
|||
|
|||
* cotisations.utils module |
|||
|
|||
|
|||
* cotisations.validators module |
|||
|
|||
|
|||
* cotisations.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.api.serializers module |
|||
|
|||
|
|||
* cotisations.api.urls module |
|||
|
|||
|
|||
* cotisations.api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.forms module |
|||
|
|||
|
|||
* cotisations.payment_methods.mixins module |
|||
|
|||
|
|||
* cotisations.payment_methods.urls module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.balance package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.balance.models module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.forms module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.cheque.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.comnpay module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.comnpay.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.free package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.free.models module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.forms module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.models module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.note module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.urls module |
|||
|
|||
|
|||
* cotisations.payment_methods.note_kfet.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* deployments package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* deployments.admin module |
|||
|
|||
|
|||
* deployments.apps module |
|||
|
|||
|
|||
* deployments.forms module |
|||
|
|||
|
|||
* deployments.models module |
|||
|
|||
|
|||
* deployments.tests module |
|||
|
|||
|
|||
* deployments.urls module |
|||
|
|||
|
|||
* deployments.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* logs package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* logs.acl module |
|||
|
|||
|
|||
* logs.forms module |
|||
|
|||
|
|||
* logs.models module |
|||
|
|||
|
|||
* logs.tests module |
|||
|
|||
|
|||
* logs.urls module |
|||
|
|||
|
|||
* logs.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* logs.templatetags package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* logs.templatetags.logs_extra module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* machines package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* machines.acl module |
|||
|
|||
|
|||
* machines.admin module |
|||
|
|||
|
|||
* machines.forms module |
|||
|
|||
|
|||
* machines.models module |
|||
|
|||
|
|||
* machines.tests module |
|||
|
|||
|
|||
* machines.urls module |
|||
|
|||
|
|||
* machines.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* machines.api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* machines.api.serializers module |
|||
|
|||
|
|||
* machines.api.urls module |
|||
|
|||
|
|||
* machines.api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* manage module |
|||
|
|||
|
|||
* manager package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* manager.defaults module |
|||
|
|||
|
|||
* manager.logger module |
|||
|
|||
|
|||
* manager.requirements module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* multi_op package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* multi_op.apps module |
|||
|
|||
|
|||
* multi_op.forms module |
|||
|
|||
|
|||
* multi_op.tests module |
|||
|
|||
|
|||
* multi_op.urls module |
|||
|
|||
|
|||
* multi_op.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* preferences package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* preferences.acl module |
|||
|
|||
|
|||
* preferences.admin module |
|||
|
|||
|
|||
* preferences.forms module |
|||
|
|||
|
|||
* preferences.models module |
|||
|
|||
|
|||
* preferences.tests module |
|||
|
|||
|
|||
* preferences.urls module |
|||
|
|||
|
|||
* preferences.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* preferences.api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* preferences.api.serializers module |
|||
|
|||
|
|||
* preferences.api.urls module |
|||
|
|||
|
|||
* preferences.api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* preferences.templatetags package |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* re2o package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.acl module |
|||
|
|||
|
|||
* re2o.aes_field module |
|||
|
|||
|
|||
* re2o.base module |
|||
|
|||
|
|||
* re2o.context_processors module |
|||
|
|||
|
|||
* re2o.contributors module |
|||
|
|||
|
|||
* re2o.field_permissions module |
|||
|
|||
|
|||
* re2o.login module |
|||
|
|||
|
|||
* re2o.mail_utils module |
|||
|
|||
|
|||
* re2o.middleware module |
|||
|
|||
|
|||
* re2o.mixins module |
|||
|
|||
|
|||
* re2o.script_utils module |
|||
|
|||
|
|||
* re2o.settings module |
|||
|
|||
|
|||
* re2o.settings_local module |
|||
|
|||
|
|||
* re2o.settings_local module |
|||
|
|||
|
|||
* re2o.urls module |
|||
|
|||
|
|||
* re2o.utils module |
|||
|
|||
|
|||
* re2o.views module |
|||
|
|||
|
|||
* re2o.wsgi module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* re2o.management package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* re2o.management.commands package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.management.commands.gen_contrib module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* re2o.templatetags package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* re2o.templatetags.acl module |
|||
|
|||
|
|||
* re2o.templatetags.design module |
|||
|
|||
|
|||
* re2o.templatetags.massive_bootstrap_form module |
|||
|
|||
|
|||
* re2o.templatetags.pagination_extra module |
|||
|
|||
|
|||
* re2o.templatetags.self_adhesion module |
|||
|
|||
|
|||
* re2o.templatetags.url_insert_param module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* search package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* search.acl module |
|||
|
|||
|
|||
* search.admin module |
|||
|
|||
|
|||
* search.engine module |
|||
|
|||
|
|||
* search.forms module |
|||
|
|||
|
|||
* search.tests module |
|||
|
|||
|
|||
* search.urls module |
|||
|
|||
|
|||
* search.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* test_utils package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* test_utils.runner module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* tickets package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* tickets.admin module |
|||
|
|||
|
|||
* tickets.apps module |
|||
|
|||
|
|||
* tickets.forms module |
|||
|
|||
|
|||
* tickets.models module |
|||
|
|||
|
|||
* tickets.tests module |
|||
|
|||
|
|||
* tickets.urls module |
|||
|
|||
|
|||
* tickets.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* tickets.preferences package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* tickets.preferences.forms module |
|||
|
|||
|
|||
* tickets.preferences.models module |
|||
|
|||
|
|||
* tickets.preferences.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* topologie package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* topologie.acl module |
|||
|
|||
|
|||
* topologie.admin module |
|||
|
|||
|
|||
* topologie.forms module |
|||
|
|||
|
|||
* topologie.models module |
|||
|
|||
|
|||
* topologie.tests module |
|||
|
|||
|
|||
* topologie.urls module |
|||
|
|||
|
|||
* topologie.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* topologie.api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* topologie.api.serializers module |
|||
|
|||
|
|||
* topologie.api.urls module |
|||
|
|||
|
|||
* topologie.api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* users package |
|||
|
|||
|
|||
* Subpackages |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* users.acl module |
|||
|
|||
|
|||
* users.admin module |
|||
|
|||
|
|||
* users.forms module |
|||
|
|||
|
|||
* users.models module |
|||
|
|||
|
|||
* users.test_models module |
|||
|
|||
|
|||
* users.tests module |
|||
|
|||
|
|||
* users.urls module |
|||
|
|||
|
|||
* users.views module |
|||
|
|||
|
|||
* users.widgets module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
* users.api package |
|||
|
|||
|
|||
* Submodules |
|||
|
|||
|
|||
* users.api.serializers module |
|||
|
|||
|
|||
* users.api.urls module |
|||
|
|||
|
|||
* users.api.views module |
|||
|
|||
|
|||
* Module contents |
|||
|
|||
|
|||
I collected the files with |
|||
|
|||
``` |
|||
sphinx-apidoc -o source/autodoc/ -f /var/www/re2o/ ../*/migrations/* |
|||
``` |
|||
|
|||
Then |
|||
|
|||
``` |
|||
make markdown |
|||
``` |
|||
|
|||
# Indices and tables |
|||
|
|||
|
|||
* Index |
|||
|
|||
|
|||
* Module Index |
|||
|
|||
|
|||
* Search Page |
|||
@ -0,0 +1,6 @@ |
|||
When developping you might want to use functions that send emails. In order to prevent re2o from spamming users, you might find this settings (to be put in `re2o/settings_local.py`) useful : |
|||
|
|||
```python |
|||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' |
|||
``` |
|||
See [here](https://docs.djangoproject.com/en/3.0/topics/email/#dummy-backend) for details. |
|||
Loading…
Reference in new issue