diff --git a/fixtures/conference.json b/fixtures/conference.json index 9469a305..e4950e4a 100644 --- a/fixtures/conference.json +++ b/fixtures/conference.json @@ -30,16 +30,5 @@ "end_date": "2018-01-23", "slug": "miniconf" } - }, - { - "fields": { - "conference": 1, - "end_date": "2018-01-22", - "name": "Open Hardware Miniconf", - "slug": "openhardware-miniconf", - "start_date": "2018-01-22" - }, - "model": "symposion_conference.section", - "pk": 3 } ] diff --git a/fixtures/miniconf-fixtures/permissions.json b/fixtures/miniconf-fixtures/permissions.json new file mode 100644 index 00000000..27458229 --- /dev/null +++ b/fixtures/miniconf-fixtures/permissions.json @@ -0,0 +1,266 @@ +[ + { + "fields": { + "codename": "can_review_openhardware-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Open Hardware Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_openhardware-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Open Hardware Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_kernel-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Kernel Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_kernel-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Kernel Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_games-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review LCA Games Miniconf: Games and FOSS Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_games-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage LCA Games Miniconf: Games and FOSS Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_bioinformatics-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Open Source and Bioinformatics Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_bioinformatics-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Open Source and Bioinformatics Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_ClsXLCA-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Community Leadership Summit X at LCA" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_ClsXLCA-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Community Leadership Summit X at LCA" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_devdev-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Developers Developers Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_devdev-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Developers Developers Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_funcprog-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Real World Functional Programming Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_funcprog-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Real World Functional Programming Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_sysadmin-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Sysadmin Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_sysadmin-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Sysadmin Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_opened-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Open Education Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_opened-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Open Education Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_openglam-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Access and memory: Open GLAM and Open Source Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_openglam-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Access and memory: Open GLAM and Open Source Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_fpga-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Create hardware with FPGAs, Linux and Python Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_fpga-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Create hardware with FPGAs, Linux and Python Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_review_arttech-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can review Art+Tech Miniconf" + }, + "model": "auth.permission" + }, + { + "fields": { + "codename": "can_manage_arttech-miniconf", + "content_type": [ + "reviews", + "" + ], + "name": "Can manage Art+Tech Miniconf" + }, + "model": "auth.permission" + } +] diff --git a/fixtures/miniconf-fixtures/symposion_conference.json b/fixtures/miniconf-fixtures/symposion_conference.json new file mode 100644 index 00000000..3cd143c0 --- /dev/null +++ b/fixtures/miniconf-fixtures/symposion_conference.json @@ -0,0 +1,134 @@ +[ + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "Open Hardware Miniconf", + "slug": "openhardware-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 3 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "Kernel Miniconf", + "slug": "kernel-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 4 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "LCA Games Miniconf: Games and FOSS Miniconf", + "slug": "games-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 5 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "Open Source and Bioinformatics Miniconf", + "slug": "bioinformatics-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 6 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "Community Leadership Summit X at LCA", + "slug": "ClsXLCA-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 7 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-22", + "name": "Developers Developers Miniconf", + "slug": "devdev-miniconf", + "start_date": "2018-01-22" + }, + "model": "symposion_conference.section", + "pk": 8 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Real World Functional Programming Miniconf", + "slug": "funcprog-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 9 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Sysadmin Miniconf", + "slug": "sysadmin-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 10 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Open Education Miniconf", + "slug": "opened-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 11 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Access and memory: Open GLAM and Open Source Miniconf", + "slug": "openglam-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 12 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Create hardware with FPGAs, Linux and Python Miniconf", + "slug": "fpga-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 13 + }, + { + "fields": { + "conference": 1, + "end_date": "2018-01-23", + "name": "Art+Tech Miniconf", + "slug": "arttech-miniconf", + "start_date": "2018-01-23" + }, + "model": "symposion_conference.section", + "pk": 14 + } +] diff --git a/fixtures/miniconf-fixtures/symposion_proposals.json b/fixtures/miniconf-fixtures/symposion_proposals.json new file mode 100644 index 00000000..da6ca001 --- /dev/null +++ b/fixtures/miniconf-fixtures/symposion_proposals.json @@ -0,0 +1,242 @@ +[ + { + "fields": { + "closed": false, + "end": "2017-11-30T12:59:00Z", + "published": false, + "section": 3, + "start": "2017-09-21T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 3 + }, + { + "fields": { + "closed": false, + "end": "2017-11-30T12:59:00Z", + "published": false, + "section": 4, + "start": "2017-09-21T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 4 + }, + { + "fields": { + "closed": false, + "end": "2017-11-30T12:59:00Z", + "published": false, + "section": 5, + "start": "2017-09-21T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 5 + }, + { + "fields": { + "closed": false, + "end": "2017-11-30T12:59:00Z", + "published": false, + "section": 6, + "start": "2017-09-21T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 6 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 7, + "start": "2017-09-21T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 7 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 8, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 8 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 9, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 9 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 10, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 10 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 11, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 11 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 12, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 12 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 13, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 13 + }, + { + "fields": { + "closed": false, + "end": "2017-11-29T13:01:00Z", + "published": false, + "section": 14, + "start": "2017-11-01T14:01:00Z" + }, + "model": "symposion_proposals.proposalsection", + "pk": 14 + }, + { + "fields": { + "name": "Open Hardware Miniconf", + "section": 3, + "slug": "openhardware-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 4 + }, + { + "fields": { + "name": "Kernel Miniconf", + "section": 4, + "slug": "kernel-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 5 + }, + { + "fields": { + "name": "Games Miniconf", + "section": 5, + "slug": "games-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 6 + }, + { + "fields": { + "name": "Bioinformatics Miniconf", + "section": 6, + "slug": "bioinformatics-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 7 + }, + { + "fields": { + "name": "ClsXLCA", + "section": 7, + "slug": "clsxlca-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 8 + }, + { + "fields": { + "name": "Developers Developers Miniconf", + "section": 8, + "slug": "devdev-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 9 + }, + { + "fields": { + "name": "Functional Programming Miniconf", + "section": 9, + "slug": "funcprog-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 10 + }, + { + "fields": { + "name": "Sysadmin Miniconf", + "section": 10, + "slug": "sysadmin-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 11 + }, + { + "fields": { + "name": "Open Education Miniconf", + "section": 11, + "slug": "opened-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 12 + }, + { + "fields": { + "name": "Open GLAM Miniconf", + "section": 12, + "slug": "openglam-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 13 + }, + { + "fields": { + "name": "FPGA Miniconf", + "section": 13, + "slug": "fpga-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 14 + }, + { + "fields": { + "name": "Art+Tech Miniconf", + "section": 14, + "slug": "arttech-miniconf" + }, + "model": "symposion_proposals.proposalkind", + "pk": 15 + } +] diff --git a/fixtures/miniconf-fixtures/teams.json b/fixtures/miniconf-fixtures/teams.json new file mode 100644 index 00000000..241118ec --- /dev/null +++ b/fixtures/miniconf-fixtures/teams.json @@ -0,0 +1,332 @@ +[ + { + "fields": { + "access": "application", + "created": "2017-09-22T03:29:45.743Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_kernel-miniconf", + "reviews", + "" + ], + [ + "can_review_kernel-miniconf", + "reviews", + "" + ] + ], + "name": "Kernel Miniconf CFP", + "permissions": [ + [ + "can_review_kernel-miniconf", + "reviews", + "" + ] + ], + "slug": "kernel-miniconf-team" + }, + "model": "teams.team", + "pk": 4 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:30:58.246Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_ClsXLCA-miniconf", + "reviews", + "" + ], + [ + "can_review_ClsXLCA-miniconf", + "reviews", + "" + ] + ], + "name": "ClsXLCA", + "permissions": [ + [ + "can_review_ClsXLCA-miniconf", + "reviews", + "" + ] + ], + "slug": "ClsXLCA-miniconf-team" + }, + "model": "teams.team", + "pk": 5 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:31:35.497Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_funcprog-miniconf", + "reviews", + "" + ], + [ + "can_review_funcprog-miniconf", + "reviews", + "" + ] + ], + "name": "Functional Programming", + "permissions": [ + [ + "can_review_funcprog-miniconf", + "reviews", + "" + ] + ], + "slug": "funcprog-miniconf-team" + }, + "model": "teams.team", + "pk": 6 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:32:09.478Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_sysadmin-miniconf", + "reviews", + "" + ] + ], + "name": "Sysadmin", + "permissions": [ + [ + "can_review_sysadmin-miniconf", + "reviews", + "" + ] + ], + "slug": "sysadmin-miniconf-team" + }, + "model": "teams.team", + "pk": 7 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:32:47.278Z", + "description": "", + "manager_permissions": [ + [ + "can_review_opened-miniconf", + "reviews", + "" + ] + ], + "name": "Open Education", + "permissions": [ + [ + "can_review_opened-miniconf", + "reviews", + "" + ] + ], + "slug": "opened-miniconf-team" + }, + "model": "teams.team", + "pk": 8 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:33:40.271Z", + "description": "", + "manager_permissions": [ + [ + "can_review_openglam-miniconf", + "reviews", + "" + ] + ], + "name": "Open GLAM", + "permissions": [ + [ + "can_review_openglam-miniconf", + "reviews", + "" + ] + ], + "slug": "openglam-miniconf-team" + }, + "model": "teams.team", + "pk": 9 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:34:16.381Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_games-miniconf", + "reviews", + "" + ], + [ + "can_review_openglam-miniconf", + "reviews", + "" + ] + ], + "name": "Games", + "permissions": [ + [ + "can_review_games-miniconf", + "reviews", + "" + ] + ], + "slug": "games-miniconf-team" + }, + "model": "teams.team", + "pk": 10 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:47:43.647Z", + "description": "", + "manager_permissions": [ + [ + "can_review_fpga-miniconf", + "reviews", + "" + ] + ], + "name": "FP", + "permissions": [ + [ + "can_review_fpga-miniconf", + "reviews", + "" + ] + ], + "slug": "fpga-miniconf-team" + }, + "model": "teams.team", + "pk": 11 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:48:42.815Z", + "description": "", + "manager_permissions": [ + [ + "can_review_devdev-miniconf", + "reviews", + "" + ] + ], + "name": "Developers Developers Miniconf", + "permissions": [ + [ + "can_review_devdev-miniconf", + "reviews", + "" + ] + ], + "slug": "devdev-miniconf-team" + }, + "model": "teams.team", + "pk": 12 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:50:38.480Z", + "description": "", + "manager_permissions": [ + [ + "can_review_arttech-miniconf", + "reviews", + "" + ] + ], + "name": "Art+Tech Miniconf", + "permissions": [ + [ + "can_review_arttech-miniconf", + "reviews", + "" + ] + ], + "slug": "arttech-miniconf-team" + }, + "model": "teams.team", + "pk": 13 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:51:38.150Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_openhardware-miniconf", + "reviews", + "" + ], + [ + "can_review_openhardware-miniconf", + "reviews", + "" + ] + ], + "name": "Open Hardware", + "permissions": [ + [ + "can_review_openhardware-miniconf", + "reviews", + "" + ] + ], + "slug": "openhardware-miniconf-team" + }, + "model": "teams.team", + "pk": 14 + }, + { + "fields": { + "access": "application", + "created": "2017-09-22T03:52:09.923Z", + "description": "", + "manager_permissions": [ + [ + "can_manage_bioinformatics-miniconf", + "reviews", + "" + ], + [ + "can_review_bioinformatics-miniconf", + "reviews", + "" + ] + ], + "name": "Open Source and Bioinformatics", + "permissions": [ + [ + "can_review_bioinformatics-miniconf", + "reviews", + "" + ] + ], + "slug": "bioinformatics-miniconf-team" + }, + "model": "teams.team", + "pk": 15 + } +] diff --git a/fixtures/proposal_base.json b/fixtures/proposal_base.json index ebc93eec..cc7bf12b 100644 --- a/fixtures/proposal_base.json +++ b/fixtures/proposal_base.json @@ -47,14 +47,5 @@ "name": "Miniconf", "slug": "miniconf" } - }, - { - "fields": { - "name": "Open Hardware Miniconf", - "section": 3, - "slug": "openhardware-miniconf" - }, - "model": "symposion_proposals.proposalkind", - "pk": 4 } ] diff --git a/pinaxcon/proposals/admin.py b/pinaxcon/proposals/admin.py index 6ae698c5..8070d290 100644 --- a/pinaxcon/proposals/admin.py +++ b/pinaxcon/proposals/admin.py @@ -11,6 +11,15 @@ from symposion.proposals import models as symposion_models @admin.register(models.KernelProposal) @admin.register(models.GamesProposal) @admin.register(models.OpenHardwareProposal) +@admin.register(models.ClsXLCAProposal) +@admin.register(models.FuncProgProposal) +@admin.register(models.OpenEdProposal) +@admin.register(models.OpenGLAMProposal) +@admin.register(models.FPGAProposal) +@admin.register(models.DevDevProposal) +@admin.register(models.ArtTechProposal) +@admin.register(models.BioInformaticsProposal) + class CategoryAdmin(admin.ModelAdmin): class AdditionalSpeakerInline(admin.TabularInline): diff --git a/pinaxcon/proposals/forms.py b/pinaxcon/proposals/forms.py index bf94facb..c5ef4f90 100644 --- a/pinaxcon/proposals/forms.py +++ b/pinaxcon/proposals/forms.py @@ -1,10 +1,27 @@ +import copy + from django import forms from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal +from pinaxcon.proposals.models import SysAdminProposal, KernelProposal, OpenHardwareProposal +from pinaxcon.proposals.models import GamesProposal, ClsXLCAProposal, FuncProgProposal +from pinaxcon.proposals.models import OpenEdProposal, OpenGLAMProposal, FPGAProposal, DevDevProposal +from pinaxcon.proposals.models import ArtTechProposal, BioInformaticsProposal -from .models import TalkProposal, TutorialProposal, MiniconfProposal -from .models import SysAdminProposal, KernelProposal, OpenHardwareProposal -from .models import GamesProposal +DEFAULT_FIELDS = [ + "title", + "target_audience", + "abstract", + "private_abstract", + "technical_requirements", + "project", + "project_url", + "recording_release", + "materials_release", +] + +TALK_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS) +TALK_FORMAT_FIELDS.append("talk_format") class ProposalForm(forms.ModelForm): @@ -68,69 +85,74 @@ class MiniconfProposalForm(ProposalForm): "materials_release", ] -class SysAdminProposalForm(ProposalForm): +class SysadminProposalForm(ProposalForm): class Meta: model = SysAdminProposal - fields = [ - "title", - "talk_format", - "target_audience", - "abstract", - "private_abstract", - "technical_requirements", - "project", - "project_url", - "recording_release", - "materials_release", - ] + fields = TALK_FORMAT_FIELDS class KernelProposalForm(ProposalForm): class Meta: model = KernelProposal - fields = [ - "title", - "target_audience", - "abstract", - "private_abstract", - "technical_requirements", - "project", - "project_url", - "recording_release", - "materials_release", - ] + fields = DEFAULT_FIELDS class GamesProposalForm(ProposalForm): class Meta: model = GamesProposal - fields = [ - "title", - "talk_format", - "target_audience", - "abstract", - "private_abstract", - "technical_requirements", - "project", - "project_url", - "recording_release", - "materials_release", - ] + fields = TALK_FORMAT_FIELDS class OpenHardwareProposalForm(ProposalForm): class Meta: model = OpenHardwareProposal - fields = [ - "title", - "talk_format", - "target_audience", - "abstract", - "private_abstract", - "technical_requirements", - "project", - "project_url", - "recording_release", - "materials_release", - ] + fields = TALK_FORMAT_FIELDS + +class ClsXLCAProposalForm(ProposalForm): + + class Meta: + model = ClsXLCAProposal + fields = DEFAULT_FIELDS + +class FuncProgProposalForm(ProposalForm): + + class Meta: + model = FuncProgProposal + fields = DEFAULT_FIELDS + +class OpenEdProposalForm(ProposalForm): + + class Meta: + model = OpenEdProposal + fields = DEFAULT_FIELDS + +class OpenGLAMProposalForm(ProposalForm): + + class Meta: + model = OpenGLAMProposal + fields = DEFAULT_FIELDS + +class FPGAProposalForm(ProposalForm): + + class Meta: + model = FPGAProposal + fields = DEFAULT_FIELDS + +class DevDevProposalForm(ProposalForm): + + class Meta: + model = DevDevProposal + fields = DEFAULT_FIELDS + +class ArtTechProposalForm(ProposalForm): + + class Meta: + model = ArtTechProposal + fields = DEFAULT_FIELDS + +class BioInformaticsProposalForm(ProposalForm): + + class Meta: + model = BioInformaticsProposal + fields = DEFAULT_FIELDS diff --git a/pinaxcon/proposals/migrations/0005_arttechproposal_bioinformaticsproposal_clsxlcaproposal_devdevproposal_fpgaproposal_funcprogproposal_.py b/pinaxcon/proposals/migrations/0005_arttechproposal_bioinformaticsproposal_clsxlcaproposal_devdevproposal_fpgaproposal_funcprogproposal_.py new file mode 100644 index 00000000..19d05959 --- /dev/null +++ b/pinaxcon/proposals/migrations/0005_arttechproposal_bioinformaticsproposal_clsxlcaproposal_devdevproposal_fpgaproposal_funcprogproposal_.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-09-22 05:43 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('symposion_proposals', '0003_auto_20170702_2250'), + ('proposals', '0004_gamesproposal_kernelproposal_openhardwareproposal_sysadminproposal'), + ] + + operations = [ + migrations.CreateModel( + name='ArtTechProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'Art+Tech Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='BioInformaticsProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'Open Source and BioInformatics Miniconf', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='ClsXLCAProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'CLSxLCA Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='DevDevProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'Developers Developers Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='FPGAProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'FPGA Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='FuncProgProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'Real World Functional Programming Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='OpenEdProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'Open Education Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='OpenGLAMProposal', + fields=[ + ('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')), + ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), + ('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-Share Alike Australia 3.0 Licence")), + ], + options={ + 'verbose_name': 'OpenGLAM Miniconf Proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + ] diff --git a/pinaxcon/proposals/models.py b/pinaxcon/proposals/models.py index e7025013..5134054f 100644 --- a/pinaxcon/proposals/models.py +++ b/pinaxcon/proposals/models.py @@ -117,3 +117,51 @@ class OpenHardwareProposal(Proposal): class Meta: verbose_name = "Open Hardware Miniconf Proposal" + + +class ClsXLCAProposal(Proposal): + + class Meta: + verbose_name = "CLSxLCA Miniconf Proposal" + + +class FuncProgProposal(Proposal): + + class Meta: + verbose_name = "Real World Functional Programming Miniconf Proposal" + + +class OpenEdProposal(Proposal): + + class Meta: + verbose_name = "Open Education Miniconf Proposal" + + +class OpenGLAMProposal(Proposal): + + class Meta: + verbose_name = "OpenGLAM Miniconf Proposal" + + +class FPGAProposal(Proposal): + + class Meta: + verbose_name = "FPGA Miniconf Proposal" + + +class DevDevProposal(Proposal): + + class Meta: + verbose_name = "Developers Developers Miniconf Proposal" + + +class ArtTechProposal(Proposal): + + class Meta: + verbose_name = "Art+Tech Miniconf Proposal" + + +class BioInformaticsProposal(Proposal): + + class Meta: + verbose_name = "Open Source and BioInformatics Miniconf" diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py index 4734f5fa..8dec25d8 100644 --- a/pinaxcon/settings.py +++ b/pinaxcon/settings.py @@ -304,17 +304,18 @@ PROPOSAL_FORMS = { "talk": "pinaxcon.proposals.forms.TalkProposalForm", "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm", "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm", - "sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm", - "openradio-miniconf": "pinaxcon.proposals.forms.RadioProposalForm", - "wootconf-miniconf": "pinaxcon.proposals.forms.WootconfProposalForm", - "writethedocs-miniconf": "pinaxcon.proposals.forms.WriteTheDocsProposalForm", - "security-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm", - "kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm", + "sysadmin-miniconf": "pinaxcon.proposals.forms.SysadminProposalForm", "games-miniconf": "pinaxcon.proposals.forms.GamesProposalForm", - "testing-miniconf": "pinaxcon.proposals.forms.TestingProposalForm", - "knowledge-miniconf": "pinaxcon.proposals.forms.KnowledgeProposalForm", - "lawpolicy-miniconf": "pinaxcon.proposals.forms.LawProposalForm", "openhardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm", + "kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm", + "clsxlca-miniconf": "pinaxcon.proposals.forms.ClsXLCAProposalForm", + "funcprog-miniconf": "pinaxcon.proposals.forms.FuncProgProposalForm", + "opened-miniconf": "pinaxcon.proposals.forms.OpenEdProposalForm", + "openglam-miniconf": "pinaxcon.proposals.forms.OpenGLAMProposalForm", + "fpga-miniconf": "pinaxcon.proposals.forms.FPGAProposalForm", + "devdev-miniconf": "pinaxcon.proposals.forms.DevDevProposalForm", + "arttech-miniconf": "pinaxcon.proposals.forms.ArtTechProposalForm", + "bioinformatics-miniconf": "pinaxcon.proposals.forms.BioInformaticsProposalForm", } # Registrasion bits: