huscy.data-acquisition-methods.questionnaire 0.2.0a4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/.gitignore +5 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/PKG-INFO +28 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/README.md +1 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/__init__.py +0 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/apps.py +9 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/migrations/.gitignore +1 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/migrations/0001_initial.py +34 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/migrations/__init__.py +0 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/models.py +23 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/serializer.py +26 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/services.py +23 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/urls.py +13 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/huscy/data_acquisition_methods/questionnaire/views.py +31 -0
- huscy_data_acquisition_methods_questionnaire-0.2.0a4/pyproject.toml +46 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: huscy.data-acquisition-methods.questionnaire
|
|
3
|
+
Version: 0.2.0a4
|
|
4
|
+
Project-URL: Homepage, https://bitbucket.org/huscy/data_acquisition_methods.questionnaire
|
|
5
|
+
Author-email: Stefan Bunde <stefanbunde+git@posteo.de>
|
|
6
|
+
License-Expression: AGPL-3.0-or-later
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Framework :: Django
|
|
9
|
+
Classifier: Framework :: Django :: 5.2
|
|
10
|
+
Classifier: Framework :: Django :: 6.0
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Programming Language :: Python
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Requires-Dist: huscy-project-design
|
|
21
|
+
Provides-Extra: development
|
|
22
|
+
Requires-Dist: psycopg2-binary; extra == 'development'
|
|
23
|
+
Provides-Extra: testing
|
|
24
|
+
Requires-Dist: tox; extra == 'testing'
|
|
25
|
+
Requires-Dist: watchdog; extra == 'testing'
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# huscy.data-acquisition-methods.questionnaire
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# huscy.data-acquisition-methods.questionnaire
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0*.py
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import django.db.models.deletion
|
|
2
|
+
from django.db import migrations, models
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def create_data_acquisition_method_type(apps, schema_editor):
|
|
6
|
+
DataAcquisitionMethodType = apps.get_model('project_design', 'DataAcquisitionMethodType')
|
|
7
|
+
|
|
8
|
+
DataAcquisitionMethodType.objects.create(
|
|
9
|
+
name='Questionnaire',
|
|
10
|
+
short_name='questionnaire',
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def delete_data_acquisition_method_type(apps, schema_editor):
|
|
15
|
+
DataAcquisitionMethodType = apps.get_model('project_design', 'DataAcquisitionMethodType')
|
|
16
|
+
|
|
17
|
+
DataAcquisitionMethodType.objects.filter(short_name='questionnaire').delete()
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Migration(migrations.Migration):
|
|
22
|
+
|
|
23
|
+
initial = True
|
|
24
|
+
|
|
25
|
+
dependencies = [
|
|
26
|
+
('project_design', '0001_initial'),
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
operations = [
|
|
30
|
+
migrations.RunPython(
|
|
31
|
+
create_data_acquisition_method_type,
|
|
32
|
+
delete_data_acquisition_method_type,
|
|
33
|
+
),
|
|
34
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# from django.db import models
|
|
2
|
+
# from django.utils.translation import gettext_lazy as _
|
|
3
|
+
|
|
4
|
+
# from huscy.project_design.models import DataAcquisitionMethod
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# def get_upload_path(instance, filename):
|
|
8
|
+
# project_id = instance.data_acquisition_method.session.experiment.project.id
|
|
9
|
+
# return f'projects/{project_id}/data_acquisition_methods/questionnaires/{filename}'
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# class Questionnaire(models.Model):
|
|
13
|
+
# data_acquisition_method = models.OneToOneField(DataAcquisitionMethod,
|
|
14
|
+
# on_delete=models.CASCADE,
|
|
15
|
+
# editable=False)
|
|
16
|
+
|
|
17
|
+
# name = models.CharField(_('Name'), max_length=255)
|
|
18
|
+
|
|
19
|
+
# filehandle = models.FileField(upload_to=get_upload_path, max_length=255,
|
|
20
|
+
# verbose_name=_('Filehandle'))
|
|
21
|
+
|
|
22
|
+
# uploaded_at = models.DateTimeField(auto_now_add=True, editable=False)
|
|
23
|
+
# uploaded_by = models.CharField(max_length=255, editable=False)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# from rest_framework import serializers
|
|
2
|
+
|
|
3
|
+
# from huscy.data_acquisition_methods.questionnaire.models import Questionnaire
|
|
4
|
+
# from huscy.data_acquisition_methods.questionnaire.services import update_questionnaire
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# class QuestionnaireSerializer(serializers.ModelSerializer):
|
|
8
|
+
|
|
9
|
+
# class Meta:
|
|
10
|
+
# model = Questionnaire
|
|
11
|
+
# fields = (
|
|
12
|
+
# 'data_acquisition_method',
|
|
13
|
+
# 'filehandle',
|
|
14
|
+
# 'name',
|
|
15
|
+
# 'uploaded_at',
|
|
16
|
+
# 'uploaded_by',
|
|
17
|
+
# )
|
|
18
|
+
# read_only_fields = 'data_acquisition_method', 'uploaded_at'
|
|
19
|
+
|
|
20
|
+
# def update(self, questionnaire, validated_data):
|
|
21
|
+
# return update_questionnaire(
|
|
22
|
+
# data_acquisition_method=questionnaire.data_acquisition_method,
|
|
23
|
+
# name=validated_data['name'],
|
|
24
|
+
# filehandle=validated_data['filehandle'],
|
|
25
|
+
# user=self.context['request'].user,
|
|
26
|
+
# )
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# from .models import Questionnaire
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# def get_questionnaires(session):
|
|
5
|
+
# return (Questionnaire.objects.filter(data_acquisition_method__session=session)
|
|
6
|
+
# .order_by('data_acquisition_method__order'))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# def update_questionnaire(data_acquisition_method, name, filehandle=None, user=None):
|
|
10
|
+
# if Questionnaire.objects.filter(data_acquisition_method=data_acquisition_method).exists():
|
|
11
|
+
# questionnaire = Questionnaire.objects.get(data_acquisition_method=data_acquisition_method)
|
|
12
|
+
# questionnaire.name = name
|
|
13
|
+
# questionnaire.save()
|
|
14
|
+
# else:
|
|
15
|
+
# assert filehandle is not None
|
|
16
|
+
# assert user is not None
|
|
17
|
+
# questionnaire = Questionnaire.objects.create(
|
|
18
|
+
# data_acquisition_method=data_acquisition_method,
|
|
19
|
+
# filehandle=filehandle,
|
|
20
|
+
# name=name,
|
|
21
|
+
# uploaded_by=user,
|
|
22
|
+
# )
|
|
23
|
+
# return questionnaire
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# from django.urls import path
|
|
2
|
+
|
|
3
|
+
# from . import views
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
urlpatterns = (
|
|
7
|
+
# path(
|
|
8
|
+
# ('api/projects/<project_pk>/experiments/<experiment_pk>/sessions/<session_pk>/'
|
|
9
|
+
# 'data-acquisition-methods/<pk>/questionnaire/'),
|
|
10
|
+
# views.QuestionnaireDetailView.as_view(),
|
|
11
|
+
# name='questionnaire-detail',
|
|
12
|
+
# ),
|
|
13
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# from django.shortcuts import get_object_or_404
|
|
2
|
+
# from rest_framework.generics import UpdateAPIView
|
|
3
|
+
# from rest_framework.permissions import IsAuthenticated
|
|
4
|
+
|
|
5
|
+
# from huscy.data_acquisition_methods.questionnaire.models import Questionnaire
|
|
6
|
+
# from huscy.data_acquisition_methods.questionnaire.serializer import QuestionnaireSerializer
|
|
7
|
+
# from huscy.project_design.models import DataAcquisitionMethod
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# class QuestionnaireDetailView(UpdateAPIView):
|
|
11
|
+
# permission_classes = IsAuthenticated,
|
|
12
|
+
# serializer_class = QuestionnaireSerializer
|
|
13
|
+
|
|
14
|
+
# def initial(self, request, *args, **kwargs):
|
|
15
|
+
# self.data_acquisition_method = get_object_or_404(
|
|
16
|
+
# DataAcquisitionMethod.objects.select_related('session__experiment__project'),
|
|
17
|
+
# session__experiment__project=self.kwargs['project_pk'],
|
|
18
|
+
# session__experiment=self.kwargs['experiment_pk'],
|
|
19
|
+
# session=self.kwargs['session_pk'],
|
|
20
|
+
# pk=self.kwargs['pk'],
|
|
21
|
+
# )
|
|
22
|
+
# self.session = self.data_acquisition_method.session
|
|
23
|
+
# self.experiment = self.session.experiment
|
|
24
|
+
# self.project = self.experiment.project
|
|
25
|
+
# return super().initial(request, *args, **kwargs)
|
|
26
|
+
|
|
27
|
+
# def get_object(self):
|
|
28
|
+
# questionnaire, _ = Questionnaire.objects.get_or_create(
|
|
29
|
+
# data_acquisition_method=self.data_acquisition_method
|
|
30
|
+
# )
|
|
31
|
+
# return questionnaire
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
[project]
|
|
8
|
+
name = "huscy.data-acquisition-methods.questionnaire"
|
|
9
|
+
version = "0.2.0a4"
|
|
10
|
+
description = ""
|
|
11
|
+
readme = { file = "README.md", content-type = "text/markdown" }
|
|
12
|
+
license = "AGPL-3.0-or-later"
|
|
13
|
+
license-files = ["LICENSE"]
|
|
14
|
+
authors = [
|
|
15
|
+
{ name = "Stefan Bunde", email = "stefanbunde+git@posteo.de" },
|
|
16
|
+
]
|
|
17
|
+
dependencies = [
|
|
18
|
+
"huscy.project_design",
|
|
19
|
+
]
|
|
20
|
+
classifiers = [
|
|
21
|
+
"Development Status :: 3 - Alpha",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
"Programming Language :: Python",
|
|
24
|
+
"Programming Language :: Python :: 3",
|
|
25
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
26
|
+
"Programming Language :: Python :: 3.10",
|
|
27
|
+
"Programming Language :: Python :: 3.11",
|
|
28
|
+
"Programming Language :: Python :: 3.12",
|
|
29
|
+
"Programming Language :: Python :: 3.13",
|
|
30
|
+
"Programming Language :: Python :: 3.14",
|
|
31
|
+
"Framework :: Django",
|
|
32
|
+
"Framework :: Django :: 5.2",
|
|
33
|
+
"Framework :: Django :: 6.0",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
development = ["psycopg2-binary"]
|
|
38
|
+
testing = ["tox", "watchdog"]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Homepage = "https://bitbucket.org/huscy/data_acquisition_methods.questionnaire"
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build]
|
|
46
|
+
include = ["huscy/"]
|