pangea.core package¶
Subpackages¶
- pangea.core.migrations package
- Submodules
- pangea.core.migrations.0001_initial module
- pangea.core.migrations.0002_auto_20200323_1658 module
- pangea.core.migrations.0003_s3apikey module
- pangea.core.migrations.0003_samplegroup_is_library module
- pangea.core.migrations.0004_merge_20200329_1743 module
- pangea.core.migrations.0005_auto_20200822_0140 module
- pangea.core.migrations.0006_auto_20200905_2245 module
- pangea.core.migrations.0007_auto_20200905_2311 module
- pangea.core.migrations.0008_auto_20200907_2159 module
- Module contents
- pangea.core.models package
- pangea.core.tests package
- pangea.core.views package
- Submodules
- pangea.core.views.analysis_result_views module
- pangea.core.views.organization_views module
- pangea.core.views.project_views module
- pangea.core.views.s3_views module
- pangea.core.views.sample_group_views module
- pangea.core.views.sample_views module
- pangea.core.views.utils module
- Module contents
Submodules¶
pangea.core.admin module¶
-
class
pangea.core.admin.FieldNameListFilter(field, request, params, model, model_admin, field_path)[source]¶ Bases:
django.contrib.admin.filters.AllValuesFieldListFilter
-
class
pangea.core.admin.OrganizationAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('name', 'members')¶
-
media¶
-
-
class
pangea.core.admin.PangeaUserAdmin(model, admin_site)[source]¶ Bases:
django.contrib.auth.admin.UserAdmin-
add_fieldsets= ((None, {'classes': ('wide',), 'fields': ('email', 'password1', 'password2', 'is_staff', 'is_active')}),)¶
-
add_form¶
-
fieldsets= ((None, {'fields': ('email', 'password')}), ('Permissions', {'fields': ('is_staff', 'is_active')}))¶
-
form¶
-
list_display= ('email', 'is_staff', 'is_active')¶
-
list_filter= ('email', 'is_staff', 'is_active')¶
-
media¶
-
model¶
-
ordering= ('email',)¶
-
search_fields= ('email',)¶
-
-
class
pangea.core.admin.ProjectAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('name', 'organization')¶
-
list_filter= (('organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>),)¶
-
media¶
-
-
class
pangea.core.admin.S3ApiKeyAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('public_key', 'bucket_name')¶
-
media¶
-
-
class
pangea.core.admin.S3BucketAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('name', 'organization', 'endpoint_url')¶
-
list_filter= (('organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>),)¶
-
media¶
-
-
class
pangea.core.admin.SampleAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('name', 'library_name', 'member_of_groups')¶
-
list_filter= (('library__group__organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), ('library', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>))¶
-
media¶
-
-
class
pangea.core.admin.SampleAnalysisResultAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('sample_name', 'module_name')¶
-
list_filter= (('sample__library__group__organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), ('sample__library__group', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), 'module_name', ('sample', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>))¶
-
media¶
-
-
class
pangea.core.admin.SampleAnalysisResultFieldAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('sample_name', 'module_name', 'field_name')¶
-
list_filter= (('analysis_result__sample__library__group__organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), ('analysis_result__sample__library__group', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), 'analysis_result__module_name', ('name', <class 'pangea.core.admin.FieldNameListFilter'>), ('analysis_result__sample', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>))¶
-
media¶
-
-
class
pangea.core.admin.SampleGroupAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('name', 'organization_name')¶
-
list_filter= (('organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>),)¶
-
media¶
-
-
class
pangea.core.admin.SampleGroupAnalysisResultAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('sample_group_name', 'module_name')¶
-
list_filter= (('sample_group__organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), ('sample_group', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), 'module_name')¶
-
media¶
-
-
class
pangea.core.admin.SampleGroupAnalysisResultFieldAdmin(model, admin_site)[source]¶ Bases:
django.contrib.admin.options.ModelAdmin-
list_display= ('sample_group_name', 'module_name', 'field_name')¶
-
list_filter= (('analysis_result__sample_group__organization', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), ('analysis_result__sample_group', <class 'django.contrib.admin.filters.RelatedOnlyFieldListFilter'>), 'analysis_result__module_name', ('name', <class 'pangea.core.admin.FieldNameListFilter'>))¶
-
media¶
-
pangea.core.apps module¶
pangea.core.encrypted_fields module¶
Encrypted Model Fields.
From https://github.com/defrex/django-encrypted-fields with modifications.
-
class
pangea.core.encrypted_fields.EncryptedString(value)[source]¶ Bases:
objectEnsures that we will need to manually call decrypt to access the plain text.
-
class
pangea.core.encrypted_fields.EncryptedTextField(verbose_name=None, name=None, primary_key=False, max_length=None, unique=False, blank=False, null=False, db_index=False, rel=None, default=<class 'django.db.models.fields.NOT_PROVIDED'>, editable=True, serialize=True, unique_for_date=None, unique_for_month=None, unique_for_year=None, choices=None, help_text='', db_column=None, db_tablespace=None, auto_created=False, validators=(), error_messages=None)[source]¶ Bases:
django.db.models.fields.Field
pangea.core.exceptions module¶
Pangea Core Exceptions
pangea.core.forms module¶
-
class
pangea.core.forms.PangeaUserChangeForm(*args, **kwargs)[source]¶ Bases:
django.contrib.auth.forms.UserChangeForm-
base_fields= {'email': <django.forms.fields.EmailField object>, 'password': <django.contrib.auth.forms.ReadOnlyPasswordHashField object>}¶
-
declared_fields= {'password': <django.contrib.auth.forms.ReadOnlyPasswordHashField object>}¶
-
media¶
-
-
class
pangea.core.forms.PangeaUserCreationForm(*args, **kwargs)[source]¶ Bases:
django.contrib.auth.forms.UserCreationForm-
class
Meta(*args, **kwargs)[source]¶ Bases:
django.contrib.auth.forms.UserCreationForm-
base_fields= {'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>, 'username': <django.contrib.auth.forms.UsernameField object>}¶
-
declared_fields= {'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>}¶
-
fields= ('email',)¶
-
media¶
-
model¶
-
-
base_fields= {'email': <django.forms.fields.EmailField object>, 'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>}¶
-
declared_fields= {'password1': <django.forms.fields.CharField object>, 'password2': <django.forms.fields.CharField object>}¶
-
media¶
-
class
pangea.core.managers module¶
-
class
pangea.core.managers.PangeaUserManager[source]¶ Bases:
django.contrib.auth.base_user.BaseUserManagerCustom Pangea user model manager where email is the unique identifiers for authentication instead of usernames.
pangea.core.mixins module¶
From https://gist.github.com/ertgl/0c26b23ac5482e206a04cb1b13ec3795
-
class
pangea.core.mixins.AutoCreatedUpdatedMixin(*args, **kwargs)[source]¶ Bases:
django.db.models.base.ModelDjango model mixin providing created_at, updated_at fields
-
created_at¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
save(*args, **kwargs)[source]¶ Save the current instance. Override this in a subclass if you want to control the saving process.
The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
-
updated_at¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
pangea.core.nested_urls module¶
Additional URLs that support nested access and access by name. /{org_pk}/ /{org_pk}/sample_groups/ /{org_pk}/sample_groups/{grp_pk}/ /{org_pk}/sample_groups/{grp_pk}/analysis_results /{org_pk}/sample_groups/{grp_pk}/analysis_results/{ar_pk} /{org_pk}/sample_groups/{grp_pk}/analysis_results/{ar_pk}/fields /{org_pk}/sample_groups/{grp_pk}/analysis_results/{ar_pk}/fields/{field_pk} /{org_pk}/sample_groups/{grp_pk}/samples/ /{org_pk}/sample_groups/{grp_pk}/samples/{sample_pk}/ /{org_pk}/sample_groups/{grp_pk}/samples/{sample_pk}/analysis_results /{org_pk}/sample_groups/{grp_pk}/samples/{sample_pk}/analysis_results/{ar_pk} /{org_pk}/sample_groups/{grp_pk}/samples/{sample_pk}/analysis_results/{ar_pk}/fields /{org_pk}/sample_groups/{grp_pk}/samples/{sample_pk}/analysis_results/{ar_pk}/fields/{field_pk}
-
pangea.core.nested_urls.nested_path(url, base_view, *out_args, **out_kwargs)[source]¶ Return a path with an intercepted view function.
-
pangea.core.nested_urls.path(route, view, kwargs=None, name=None, *, Pattern=<class 'django.urls.resolvers.RoutePattern'>)¶
pangea.core.param_auth module¶
pangea.core.permissions module¶
-
class
pangea.core.permissions.OrganizationPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to modify organization.
-
class
pangea.core.permissions.ProjectPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to write to sample group.
-
class
pangea.core.permissions.S3ApiKeyPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to do anything with s3 API keys.
-
class
pangea.core.permissions.S3BucketPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to do anything with s3 Buckets.
-
class
pangea.core.permissions.SampleAnalysisResultFieldPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to write to sample analysis result.
-
class
pangea.core.permissions.SampleAnalysisResultPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to write to sample analysis result.
-
class
pangea.core.permissions.SampleGroupAnalysisResultFieldPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to write to sample group analysis result.
-
class
pangea.core.permissions.SampleGroupAnalysisResultPermission[source]¶ Bases:
rest_framework.permissions.BasePermissionRequire organization membership in order to write to sample group analysis result.
pangea.core.search module¶
pangea.core.search_indexes module¶
-
class
pangea.core.search_indexes.OrganizationIndex[source]¶ Bases:
haystack.indexes.SearchIndex,haystack.constants.Indexable-
fields= {'name': <haystack.fields.CharField object>, 'text': <haystack.fields.CharField object>}¶
-
get_model()[source]¶ Should return the
Modelclass (not an instance) that the rest of theSearchIndexshould use.This method is required & you must override it to return the correct class.
-
name= <haystack.fields.CharField object>¶
-
objects= <haystack.manager.SearchIndexManager object>¶
-
text= <haystack.fields.CharField object>¶
-
-
class
pangea.core.search_indexes.SampleGroupIndex[source]¶ Bases:
haystack.indexes.SearchIndex,haystack.constants.Indexable-
fields= {'name': <haystack.fields.CharField object>, 'text': <haystack.fields.CharField object>}¶
-
get_model()[source]¶ Should return the
Modelclass (not an instance) that the rest of theSearchIndexshould use.This method is required & you must override it to return the correct class.
-
name= <haystack.fields.CharField object>¶
-
objects= <haystack.manager.SearchIndexManager object>¶
-
text= <haystack.fields.CharField object>¶
-
-
class
pangea.core.search_indexes.SampleIndex[source]¶ Bases:
haystack.indexes.SearchIndex,haystack.constants.Indexable-
fields= {'name': <haystack.fields.CharField object>, 'text': <haystack.fields.CharField object>}¶
-
get_model()[source]¶ Should return the
Modelclass (not an instance) that the rest of theSearchIndexshould use.This method is required & you must override it to return the correct class.
-
name= <haystack.fields.CharField object>¶
-
objects= <haystack.manager.SearchIndexManager object>¶
-
text= <haystack.fields.CharField object>¶
-
pangea.core.serializers module¶
-
class
pangea.core.serializers.OrganizationAddUserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.Serializer
-
class
pangea.core.serializers.OrganizationSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.PangeaUserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.ProjectAddSampleGroupSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.Serializer
-
class
pangea.core.serializers.ProjectSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.S3ApiKeySerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.S3BucketSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer-
class
Meta[source]¶ Bases:
object-
fields= ('uuid', 'name', 'endpoint_url', 'organization')¶
-
model¶ alias of
pangea.core.models.s3.S3Bucket
-
-
class
-
class
pangea.core.serializers.SampleAnalysisResultFieldSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.SampleAnalysisResultSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.SampleGroupAddSampleSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.Serializer
-
class
pangea.core.serializers.SampleGroupAnalysisResultFieldSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.SampleGroupAnalysisResultSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
-
class
pangea.core.serializers.SampleGroupSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]¶ Bases:
rest_framework.serializers.ModelSerializer
pangea.core.urls module¶
-
pangea.core.urls.path(route, view, kwargs=None, name=None, *, Pattern=<class 'django.urls.resolvers.RoutePattern'>)¶