LCA2022 Setup
Update dates and descriptions for LCA2022. Remove old miniconf proposal types. Add local timezone to speaker profile.
This commit is contained in:
parent
734a0b713d
commit
f72490b1eb
48 changed files with 148 additions and 1160 deletions
227
.gitlab-ci.yml
227
.gitlab-ci.yml
|
@ -1,225 +1,56 @@
|
|||
stages:
|
||||
- build
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
CONTAINER_IMAGE_2019: "asia.gcr.io/linuxconfsydney/symposion_app_2019"
|
||||
CONTAINER_IMAGE_2020: "asia.gcr.io/linuxconfsydney/symposion_app_2020"
|
||||
CONTAINER_IMAGE_2021: "asia.gcr.io/linuxconfsydney/symposion_app_2021"
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
CONTAINER_PREFIX: 2022
|
||||
CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/$CONTAINER_PREFIX:$CI_COMMIT_SHA
|
||||
|
||||
build_image:
|
||||
build-image:
|
||||
image: docker:git
|
||||
stage: build
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker build -f docker/Dockerfile -t asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA .
|
||||
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA .
|
||||
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
|
||||
- docker push asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
|
||||
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA
|
||||
- docker tag asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app:latest
|
||||
- docker tag asia.gcr.io/linuxconfsydney/symposion_app_dev:$CI_COMMIT_SHA asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
|
||||
- docker push asia.gcr.io/linuxconfsydney/symposion_app:latest
|
||||
- docker push asia.gcr.io/linuxconfsydney/symposion_app_dev:latest
|
||||
- apk update && apk add git
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker build --pull -f docker/Dockerfile -t $CONTAINER_IMAGE .
|
||||
- docker push $CONTAINER_IMAGE
|
||||
only:
|
||||
- master
|
||||
- "2022"
|
||||
|
||||
k8s-prod-deploy:
|
||||
k8s-deploy-staging:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "$GOOGLE_KEY" > key.json
|
||||
- gcloud auth activate-service-account --key-file key.json
|
||||
- gcloud config set compute/zone australia-southeast1-b
|
||||
- gcloud config set project linuxconfsydney
|
||||
- gcloud config set container/use_client_certificate True
|
||||
- gcloud container clusters get-credentials lca02
|
||||
- kubectl --namespace=rego-prod set image deployment/symposion-app symposion-app=asia.gcr.io/linuxconfsydney/symposion_app:$CI_COMMIT_SHA
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2022-staging --user=gitlab-ci
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${KUBE_TOKEN}" set image deployment/symposion-app symposion-app=$CONTAINER_IMAGE
|
||||
when: manual
|
||||
only:
|
||||
- master
|
||||
- dev/2022
|
||||
environment:
|
||||
name: 2019/prod
|
||||
url: https://rego.linux.conf.au
|
||||
name: 2022/staging
|
||||
url: https://staging-lca2022.gc2020.org/
|
||||
|
||||
build_review_deployment:
|
||||
image: docker:git
|
||||
services:
|
||||
- docker:dind
|
||||
stage: build
|
||||
script:
|
||||
- docker run -v "${PWD}"/k8s:/src sparkprime/jsonnet /src/deployment_template.jsonnet --tla-str slug="${CI_COMMIT_REF_SLUG}" --tla-str sha="${CI_COMMIT_SHA}" -m /src
|
||||
only:
|
||||
- /^dev\/.*$/
|
||||
artifacts:
|
||||
paths:
|
||||
- k8s/deployment.json
|
||||
- k8s/ingress.json
|
||||
- k8s/certificate.json
|
||||
|
||||
build_2021_image:
|
||||
image: docker:git
|
||||
stage: build
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
|
||||
- docker pull "${CONTAINER_IMAGE_2021}":latest || true
|
||||
- docker build --cache-from "${CONTAINER_IMAGE_2021}":latest -f docker/Dockerfile -t "${CONTAINER_IMAGE_2021}":$CI_COMMIT_SHA .
|
||||
- docker push "${CONTAINER_IMAGE_2021}":$CI_COMMIT_SHA
|
||||
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t "${CONTAINER_IMAGE_2021}"_dev:$CI_COMMIT_SHA .
|
||||
- docker push "${CONTAINER_IMAGE_2021}"_dev:$CI_COMMIT_SHA
|
||||
- docker tag "${CONTAINER_IMAGE_2021}"_dev:$CI_COMMIT_SHA "${CONTAINER_IMAGE_2021}"_dev:$CI_COMMIT_REF_SLUG
|
||||
- docker push "${CONTAINER_IMAGE_2021}"_dev:$CI_COMMIT_REF_SLUG
|
||||
only:
|
||||
- "2021"
|
||||
|
||||
build_2020_image:
|
||||
image: docker:git
|
||||
stage: build
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker login -u _json_key -p "$GOOGLE_KEY" https://asia.gcr.io
|
||||
- docker pull "${CONTAINER_IMAGE_2020}":latest || true
|
||||
- docker build --cache-from "${CONTAINER_IMAGE_2020}":latest -f docker/Dockerfile -t "${CONTAINER_IMAGE_2020}":$CI_COMMIT_SHA .
|
||||
- docker push "${CONTAINER_IMAGE_2020}":$CI_COMMIT_SHA
|
||||
- docker build --build-arg CI_COMMIT_SHA=$CI_COMMIT_SHA -f docker/Dockerfile.dev -t "${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_SHA .
|
||||
- docker push "${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_SHA
|
||||
- docker tag "${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_SHA "${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_REF_SLUG
|
||||
- docker push "${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_REF_SLUG
|
||||
only:
|
||||
- "2020"
|
||||
|
||||
2020-prod-deploy:
|
||||
k8s-deploy-prod:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2020-prod --user=gitlab-ci
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2022-prod --user=gitlab-ci
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2020}":$CI_COMMIT_SHA
|
||||
only:
|
||||
- "2020"
|
||||
when: manual
|
||||
environment:
|
||||
name: 2020/prod
|
||||
url: https://lca2020.linux.org.au
|
||||
|
||||
2019-prod-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2019-prod --user=gitlab-ci
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}":$CI_COMMIT_SHA
|
||||
only:
|
||||
- "2019"
|
||||
when: manual
|
||||
environment:
|
||||
name: 2019/prod
|
||||
url: https://2019.linux.conf.au
|
||||
|
||||
2020_dev-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=rego-dev --user=gitlab-sa
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_SHA
|
||||
only:
|
||||
- dev/2020
|
||||
environment:
|
||||
name: 2020/dev
|
||||
url: https://2020-dev.lca2019.org
|
||||
|
||||
2019_dev-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=rego-dev --user=gitlab-sa
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
|
||||
only:
|
||||
- dev/2019
|
||||
environment:
|
||||
name: 2019/dev
|
||||
url: https://dev.lca2019.org
|
||||
|
||||
2019_review-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=rego-review --user=rego-dev/gitlab-sa
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/deployment.json
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/ingress.json
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" apply -f k8s/certificate.json
|
||||
|
||||
only:
|
||||
- /^dev\/.*$/
|
||||
environment:
|
||||
name: 2019/dev/${CI_COMMIT_REF_SLUG}
|
||||
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
|
||||
on_stop: 2019_review-stop-deploy
|
||||
|
||||
2019_review-stop-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=rego-review --user=rego-dev/gitlab-sa
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/deployment.json
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/ingress.json
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" delete -f k8s/certificate.json
|
||||
only:
|
||||
- /^dev\/.*$/
|
||||
when: manual
|
||||
environment:
|
||||
name: 2019/dev/${CI_COMMIT_REF_SLUG}
|
||||
url: https://${CI_COMMIT_REF_SLUG}.dev.lca2019.org
|
||||
action: stop
|
||||
|
||||
2020_staging-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2020-staging --user=gitlab-ci
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2020}"_dev:$CI_COMMIT_SHA
|
||||
- kubectl --token "${KUBE_TOKEN}" set image deployment/symposion-app symposion-app=$CONTAINER_IMAGE
|
||||
when: manual
|
||||
only:
|
||||
- dev/2020
|
||||
- "2022"
|
||||
environment:
|
||||
name: 2020/staging
|
||||
url: https://staging2020.lca2019.org
|
||||
|
||||
2019_staging-deploy:
|
||||
image: google/cloud-sdk
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "${CA_CERT}" > cert.crt
|
||||
- kubectl config set-cluster cluster --server="${KUBE_SERVER}" --embed-certs=true --certificate-authority=cert.crt
|
||||
- kubectl config set-context cluster --cluster=cluster --namespace=lca2019-staging --user=gitlab-ci
|
||||
- kubectl config use-context cluster
|
||||
- kubectl --token "${GL_KUBE_TOKEN}" set image deployment/symposion-app symposion-app="${CONTAINER_IMAGE_2019}"_dev:$CI_COMMIT_SHA
|
||||
when: manual
|
||||
only:
|
||||
- dev/2019
|
||||
environment:
|
||||
name: 2019/staging
|
||||
url: https://staging.lca2019.org
|
||||
name: 2022/prod
|
||||
url: https://lca2022.linux.org.au
|
||||
|
||||
.docs_template: &sphinx
|
||||
image: alpine
|
||||
|
@ -238,7 +69,7 @@ pages:
|
|||
<<: *sphinx
|
||||
only:
|
||||
- master
|
||||
- "2021"
|
||||
- "2022"
|
||||
environment:
|
||||
name: docs
|
||||
url: https://laconfdev.gitlab.io/symposion_app/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
ARG CI_COMMIT_SHA
|
||||
FROM asia.gcr.io/linuxconfsydney/symposion_app_2021:$CI_COMMIT_SHA
|
||||
ARG $CONTAINER_IMAGE
|
||||
FROM $CONTAINER_IMAGE
|
||||
|
||||
CMD ["/app/symposion_app/docker/deploy_with_sqlite.sh"]
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"conference": 1,
|
||||
"name": "Main Conference",
|
||||
"slug": "main",
|
||||
"start_date": "2021-01-23",
|
||||
"end_date": "2021-01-25"
|
||||
"start_date": "2022-01-14",
|
||||
"end_date": "2022-01-16"
|
||||
}
|
||||
},
|
||||
{
|
|
@ -4,8 +4,8 @@
|
|||
"pk": 1,
|
||||
"fields": {
|
||||
"section": 1,
|
||||
"start": "2020-10-06T12:00:00Z",
|
||||
"end": "2020-11-01T12:00:00Z",
|
||||
"start": "2021-08-01T12:00:00Z",
|
||||
"end": "2021-09-01T12:00:00Z",
|
||||
"closed": false,
|
||||
"published": true
|
||||
}
|
||||
|
@ -15,8 +15,8 @@
|
|||
"pk": 2,
|
||||
"fields": {
|
||||
"section": 2,
|
||||
"start": "2020-10-06T12:00:00Z",
|
||||
"end": "2020-11-01T12:00:00Z",
|
||||
"start": "2021-07-05T12:00:00Z",
|
||||
"end": "2021-08-01T12:00:00Z",
|
||||
"closed": false,
|
||||
"published": true
|
||||
}
|
|
@ -4,8 +4,8 @@
|
|||
"pk": 1,
|
||||
"fields": {
|
||||
"slug": "main-proposals",
|
||||
"name": "linux.conf.au 2021 Sessions Team",
|
||||
"description": "Team looking after the linux.conf.au 2021 Call for Sessions",
|
||||
"name": "linux.conf.au Sessions Team",
|
||||
"description": "Team looking after the linux.conf.au Call for Sessions",
|
||||
"access": "invitation",
|
||||
"created": "2019-06-23T08:16:34.032Z",
|
||||
"permissions": [
|
||||
|
@ -38,9 +38,9 @@
|
|||
"model": "teams.team",
|
||||
"pk": 2,
|
||||
"fields": {
|
||||
"slug": "lca2021-organising-team",
|
||||
"name": "linux.conf.au 2021 Organising Team",
|
||||
"description": "The organising team for linux.conf.au 2021",
|
||||
"slug": "organising-team",
|
||||
"name": "linux.conf.au Organising Team",
|
||||
"description": "The organising team for linux.conf.au",
|
||||
"access": "invitation",
|
||||
"created": "2019-08-26T22:59:09.265Z",
|
||||
"permissions": [
|
|
@ -3,10 +3,10 @@
|
|||
"model": "symposion_conference.conference",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"title": "linux.conf.au 2021",
|
||||
"start_date": "2021-01-23",
|
||||
"end_date": "2021-01-25",
|
||||
"timezone": "Australia/Brisbane"
|
||||
"title": "linux.conf.au 2022",
|
||||
"start_date": "2022-01-14",
|
||||
"end_date": "2022-01-16",
|
||||
"timezone": "Australia/Canberra"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
"model": "sites.site",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"domain": "lca2021.linux.org.au",
|
||||
"name": "linux.conf.au 2021"
|
||||
"domain": "lca2022.linux.org.au",
|
||||
"name": "linux.conf.au 2022"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
"model": "sitetree.treeitem",
|
||||
"pk": 6,
|
||||
"fields": {
|
||||
"title": "About LCA2021",
|
||||
"title": "About LCA2022",
|
||||
"hint": "",
|
||||
"url": "/about/",
|
||||
"urlaspattern": false,
|
||||
|
|
|
@ -121,7 +121,7 @@ function (slug, sha) {
|
|||
"value": "UA-000000000-1"
|
||||
}
|
||||
],
|
||||
"image": "asia.gcr.io/linuxconfsydney/symposion_app_2021_dev:" + sha,
|
||||
"image": "asia.gcr.io/linuxconfsydney/symposion_app_2022_dev:" + sha,
|
||||
"imagePullPolicy": "Always",
|
||||
"livenessProbe": {
|
||||
"failureThreshold": 3,
|
||||
|
|
|
@ -8,6 +8,12 @@ if [ -e ./symposion-tools ]; then
|
|||
popd
|
||||
fi
|
||||
|
||||
# Check for docker running
|
||||
if ! docker info >/dev/null 2>&1; then
|
||||
echo "Docker does not seem to be running. Please start it and retry."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker image build -f docker/Dockerfile -t ${IMAGE_NAME} --target symposion_dev .
|
||||
docker container stop symposion
|
||||
docker container rm symposion
|
||||
|
@ -39,4 +45,3 @@ echo "Username: admin1 Password: the one you just typed twice"
|
|||
echo "If you need to test as a non-admin user, create one at"
|
||||
echo "http://localhost:28000/admin/auth/user/add/ - then log out"
|
||||
echo "and log back in at http://localhost:28000"
|
||||
|
||||
|
|
|
@ -24,11 +24,7 @@ models_to_register = [
|
|||
models.TalkProposal,
|
||||
models.TutorialProposal,
|
||||
models.MiniconfProposal,
|
||||
### LCA2021 Miniconfs
|
||||
models.GlamProposal,
|
||||
models.KernelProposal,
|
||||
models.OpenHardwareProposal,
|
||||
models.SysAdminProposal,
|
||||
### LCA2022 Miniconfs
|
||||
]
|
||||
|
||||
for model in models_to_register:
|
||||
|
|
|
@ -14,13 +14,14 @@ DEFAULT_FIELDS = [
|
|||
"technical_requirements",
|
||||
"project",
|
||||
"project_url",
|
||||
"video_url",
|
||||
"recording_release",
|
||||
"materials_release",
|
||||
]
|
||||
|
||||
TALK_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS)
|
||||
TALK_FORMAT_FIELDS.insert(2, "talk_format")
|
||||
TALK_FORMAT_FIELDS.append("ticket_acknowledgement")
|
||||
MINICONF_SESSION_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS)
|
||||
MINICONF_SESSION_FORMAT_FIELDS.insert(2, "talk_format")
|
||||
MINICONF_SESSION_FORMAT_FIELDS.append("ticket_acknowledgement")
|
||||
|
||||
class ProposalForm(forms.ModelForm):
|
||||
|
||||
|
@ -39,36 +40,14 @@ class TalkProposalForm(ProposalForm):
|
|||
|
||||
class Meta:
|
||||
model = models.TalkProposal
|
||||
fields = [
|
||||
"title",
|
||||
"target_audience",
|
||||
"abstract",
|
||||
"private_abstract",
|
||||
"technical_requirements",
|
||||
"project",
|
||||
"project_url",
|
||||
"video_url",
|
||||
"recording_release",
|
||||
"materials_release",
|
||||
]
|
||||
fields = copy.copy(DEFAULT_FIELDS)
|
||||
|
||||
|
||||
class TutorialProposalForm(ProposalForm):
|
||||
|
||||
class Meta:
|
||||
model = models.TutorialProposal
|
||||
fields = [
|
||||
"title",
|
||||
"target_audience",
|
||||
"abstract",
|
||||
"private_abstract",
|
||||
"technical_requirements",
|
||||
"project",
|
||||
"project_url",
|
||||
"video_url",
|
||||
"recording_release",
|
||||
"materials_release",
|
||||
]
|
||||
fields = copy.copy(DEFAULT_FIELDS)
|
||||
|
||||
|
||||
class MiniconfProposalForm(ProposalForm):
|
||||
|
@ -84,55 +63,10 @@ class MiniconfProposalForm(ProposalForm):
|
|||
"materials_release",
|
||||
]
|
||||
|
||||
### LCA2020 Miniconfs
|
||||
### LCA2022 Miniconfs
|
||||
|
||||
class MiniconfSessionProposalForm(ProposalForm):
|
||||
|
||||
def __init__(self, *a, **k):
|
||||
super(MiniconfSessionProposalForm, self).__init__(*a, **k)
|
||||
self.fields['ticket_acknowledgement'].required = True
|
||||
|
||||
|
||||
GLAM_FIELDS = copy.copy(TALK_FORMAT_FIELDS)
|
||||
GLAM_FIELDS.insert(3, "require_approval")
|
||||
|
||||
|
||||
class GlamProposalForm(MiniconfSessionProposalForm):
|
||||
|
||||
class Meta:
|
||||
model = models.GlamProposal
|
||||
fields = GLAM_FIELDS
|
||||
|
||||
|
||||
class KernelProposalForm(MiniconfSessionProposalForm):
|
||||
|
||||
class Meta:
|
||||
model = models.KernelProposal
|
||||
fields = TALK_FORMAT_FIELDS
|
||||
|
||||
|
||||
HARDWARE_FIELDS = copy.copy(TALK_FORMAT_FIELDS)
|
||||
HARDWARE_FIELDS.insert(3, "experience_level")
|
||||
|
||||
|
||||
class OpenHardwareProposalForm(MiniconfSessionProposalForm):
|
||||
|
||||
def __init__(self, *a, **k):
|
||||
super(OpenHardwareProposalForm, self).__init__(*a, **k)
|
||||
self.fields['experience_level'].required = True
|
||||
|
||||
class Meta:
|
||||
model = models.OpenHardwareProposal
|
||||
fields = HARDWARE_FIELDS
|
||||
|
||||
|
||||
SYSADMIN_FIELDS = copy.copy(TALK_FORMAT_FIELDS)
|
||||
SYSADMIN_FIELDS.insert(3, "local_timezone")
|
||||
SYSADMIN_FIELDS.insert(4, "tech_check")
|
||||
|
||||
class SysAdminProposalForm(MiniconfSessionProposalForm):
|
||||
|
||||
class Meta:
|
||||
model = models.SysAdminProposal
|
||||
fields = SYSADMIN_FIELDS
|
||||
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.5 on 2017-09-20 12:58
|
||||
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', '0003_auto_20170702_2227'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='GamesProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Presentation'), (2, 'Demonstration'), (3, 'Other')])),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Games and FOSS Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='KernelProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Kernel Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OpenHardwareProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Presentation (20 min)'), (2, 'Lightning Talk (5 min)')])),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Open Hardware Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SysAdminProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15-25 min)'), (2, 'Lightning Talk (5-10 min)')], help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'System Administration Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
]
|
|
@ -1,121 +0,0 @@
|
|||
# -*- 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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'OpenGLAM Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
]
|
|
@ -1,32 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.5 on 2017-10-15 11:27
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [('proposals', '0006_auto_20171015_1908'), ('proposals', '0007_auto_20171015_1918')]
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0005_arttechproposal_bioinformaticsproposal_clsxlcaproposal_devdevproposal_fpgaproposal_funcprogproposal_'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='arttechproposal',
|
||||
name='can_exhibit',
|
||||
field=models.IntegerField(choices=[(1, 'I am willing and able to exhibit my project on Monday, January 22nd'), (2, "I'm unable to exhibit my project")], default=1),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='arttechproposal',
|
||||
name='exhibition_requirements',
|
||||
field=models.TextField(blank=True, default=''),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='arttechproposal',
|
||||
name='talk_format',
|
||||
field=models.IntegerField(choices=[(1, 'Tech talk (45 min)'), (2, 'Demonstration (20min)'), (3, 'Lightning Talk (10min)')], default=1),
|
||||
),
|
||||
]
|
|
@ -1,27 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.5 on 2017-10-23 10:18
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [('proposals', '0007_auto_20171023_2113'), ('proposals', '0008_auto_20171023_2114')]
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0006_auto_20171015_1908_squashed_0007_auto_20171015_1918'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='arttechproposal',
|
||||
name='target_audience',
|
||||
field=models.IntegerField(choices=[(1, 'N/A')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='arttechproposal',
|
||||
name='target_audience',
|
||||
field=models.IntegerField(choices=[(1, 'N/A')], default=1),
|
||||
),
|
||||
]
|
|
@ -1,53 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-09-29 05:55
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('symposion_proposals', '0003_auto_20170702_2250'),
|
||||
('symposion_reviews', '0001_initial'),
|
||||
('symposion_schedule', '0007_auto_20161224_1709'),
|
||||
('proposals', '0007_auto_20171023_2113_squashed_0008_auto_20171023_2114'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='bioinformaticsproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='clsxlcaproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='fpgaproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='funcprogproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='openglamproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='BioInformaticsProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ClsXLCAProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='FPGAProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='FuncProgProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='OpenGLAMProposal',
|
||||
),
|
||||
]
|
|
@ -1,31 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-03 08:19
|
||||
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', '0008_auto_20180929_1555'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='DocsProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Presentation (40-45 min)'), (2, 'Short Presentation (20-30 min)'), (3, 'Lightning Talk (5-10 min)')], help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Docs Down Under Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-05 19:42
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0009_docsproposal'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='gamesproposal',
|
||||
name='talk_format',
|
||||
field=models.IntegerField(choices=[(1, 'Presentation (long)'), (1, 'Presentation (short)'), (3, 'Demonstration'), (4, 'Other')]),
|
||||
),
|
||||
]
|
|
@ -1,25 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-18 07:18
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0010_auto_20181006_0542'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='kernelproposal',
|
||||
name='talk_format',
|
||||
field=models.IntegerField(choices=[(1, 'Presentation (40-45 min)'), (2, 'Short Presentation (20-30 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='docsproposal',
|
||||
name='target_audience',
|
||||
field=models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer'), (4, 'Writer')], default=1),
|
||||
),
|
||||
]
|
|
@ -1,20 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-18 07:30
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0011_auto_20181018_1818'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='arttechproposal',
|
||||
name='can_exhibit',
|
||||
field=models.IntegerField(choices=[(1, 'I am willing and able to exhibit my project on Thursday, January 24th'), (2, "I'm unable to exhibit my project")], default=1),
|
||||
),
|
||||
]
|
|
@ -1,26 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-23 08:14
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0012_auto_20181018_1830'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='openedproposal',
|
||||
name='talk_format',
|
||||
field=models.IntegerField(choices=[(1, 'Presentation (40-45 min)'), (2, 'Short Presentation (20-30 min)'), (3, 'Lightning Talk (5-10 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='openedproposal',
|
||||
name='target_audience',
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -1,30 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-24 07:02
|
||||
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', '0013_auto_20181023_1914'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SecurityProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Security, Identity and Privacy Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
]
|
|
@ -1,21 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.15 on 2018-10-24 07:13
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0014_securityproposal'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='securityproposal',
|
||||
name='talk_format',
|
||||
field=models.IntegerField(choices=[(1, 'Presentation (40-45 min)'), (2, 'Short Presentation (20-30 min)'), (3, 'Lightning Talk (5-10 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
|
@ -1,81 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.21 on 2019-06-24 11:28
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('symposion_schedule', '0008_auto_20190122_0815'),
|
||||
('symposion_proposals', '0003_auto_20170702_2250'),
|
||||
('symposion_reviews', '0001_initial'),
|
||||
('proposals', '0015_securityproposal_talk_format'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='arttechproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='devdevproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='docsproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='gamesproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='kernelproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='openedproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='openhardwareproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='securityproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='sysadminproposal',
|
||||
name='proposalbase_ptr',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ArtTechProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DevDevProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='DocsProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='GamesProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='KernelProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='OpenEdProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='OpenHardwareProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='SecurityProposal',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='SysAdminProposal',
|
||||
),
|
||||
]
|
|
@ -1,77 +0,0 @@
|
|||
# Generated by Django 2.2.17 on 2020-11-23 10:16
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('symposion_proposals', '0003_auto_20170702_2250'),
|
||||
('proposals', '0016_auto_20190624_2328'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='GlamProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15 or 20 min)'), (2, 'Long Presentation (45 min)')], default=2, help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.')),
|
||||
('require_approval', models.BooleanField(default=False, help_text='Do you require further approval from your employer or institution before you can confirm your availability to present?')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'GO GLAM Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='KernelProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15 or 20 min)'), (2, 'Long Presentation (45 min)')], default=2, help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Kernel Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OpenHardwareProposal',
|
||||
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')),
|
||||
('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, under the <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.')),
|
||||
('target_audience', models.IntegerField(choices=[(1, 'Hardware'), (2, 'Firmware'), (3, 'Community'), (4, 'Other')], help_text='What is the main focus for your session? If Other, please provide detail in the private abstract.')),
|
||||
('experience_level', models.IntegerField(choices=[(1, 'Beginner'), (2, 'Intermediate'), (3, 'Advanced')], help_text='What level of experience will your session be pitched at? Note: We are aiming for a range of session skill levels.')),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Presentation'), (2, 'Tutorial'), (3, 'Hands-on')], default=1, help_text='Will your session be a presentation, tutorial or hands-on (e.g how to use KiCAD or some other tooling)?')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Open Hardware Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SysAdminProposal',
|
||||
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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('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 <a href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>")),
|
||||
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.')),
|
||||
('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15 or 20 min)')], default=1, help_text='Talks at the System Administration Miniconf will be short presentations.')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'System Administration Miniconf Proposal',
|
||||
},
|
||||
bases=('symposion_proposals.proposalbase',),
|
||||
),
|
||||
]
|
|
@ -1,43 +0,0 @@
|
|||
# Generated by Django 2.2.17 on 2020-11-23 13:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('proposals', '0017_lca2021_miniconfs'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='sysadminproposal',
|
||||
name='local_timezone',
|
||||
field=models.CharField(default='', help_text='What is your local timezone that you will be presenting from?', max_length=100),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='sysadminproposal',
|
||||
name='tech_check',
|
||||
field=models.BooleanField(default=False, help_text="Will you be available for an 'AV Tech Check' on 5 January 2021?", verbose_name='AV Tech Check'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='glamproposal',
|
||||
name='ticket_acknowledgement',
|
||||
field=models.BooleanField(default=False, help_text='I understand that I may be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='kernelproposal',
|
||||
name='ticket_acknowledgement',
|
||||
field=models.BooleanField(default=False, help_text='I understand that I may be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='openhardwareproposal',
|
||||
name='ticket_acknowledgement',
|
||||
field=models.BooleanField(default=False, help_text='I understand that I may be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='sysadminproposal',
|
||||
name='ticket_acknowledgement',
|
||||
field=models.BooleanField(default=False, help_text='I understand that I may be required to purchase a conference ticket as linux.conf.au miniconfs are unfunded community run events.'),
|
||||
),
|
||||
]
|
|
@ -85,114 +85,3 @@ class MiniconfSessionProposal(Proposal):
|
|||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
||||
class GlamProposal(MiniconfSessionProposal):
|
||||
|
||||
require_approval = models.BooleanField(
|
||||
default=False,
|
||||
help_text="Do you require further approval from your employer or institution "
|
||||
"before you can confirm your availability to present?"
|
||||
)
|
||||
|
||||
@property
|
||||
def is_glam_miniconf(self):
|
||||
return True
|
||||
|
||||
class Meta:
|
||||
verbose_name = "GO GLAM Miniconf Proposal"
|
||||
|
||||
|
||||
class KernelProposal(MiniconfSessionProposal):
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Kernel Miniconf Proposal"
|
||||
|
||||
|
||||
class OpenHardwareProposal(MiniconfSessionProposal):
|
||||
|
||||
TARGET_HARDWARE = 1
|
||||
TARGET_FIRMWARE = 2
|
||||
TARGET_COMMUNITY = 3
|
||||
TARGET_OTHER = 4
|
||||
|
||||
TARGET_AUDIENCES = [
|
||||
(TARGET_HARDWARE, "Hardware"),
|
||||
(TARGET_FIRMWARE, "Firmware"),
|
||||
(TARGET_COMMUNITY, "Community"),
|
||||
(TARGET_OTHER, "Other"),
|
||||
]
|
||||
|
||||
LEVEL_BEGINNER = 1
|
||||
LEVEL_INTERMEDIATE = 2
|
||||
LEVEL_ADVANCED = 3
|
||||
|
||||
EXPERIENCE_LEVEL = [
|
||||
(LEVEL_BEGINNER, "Beginner"),
|
||||
(LEVEL_INTERMEDIATE, "Intermediate"),
|
||||
(LEVEL_ADVANCED, "Advanced"),
|
||||
]
|
||||
|
||||
FORMAT_PRESENTATION = 1
|
||||
FORMAT_TUTORIAL = 2
|
||||
FORMAT_HANDS_ON = 3
|
||||
|
||||
TALK_FORMATS = [
|
||||
(FORMAT_PRESENTATION, "Presentation"),
|
||||
(FORMAT_TUTORIAL, "Tutorial"),
|
||||
(FORMAT_HANDS_ON, "Hands-on"),
|
||||
]
|
||||
|
||||
target_audience = models.IntegerField(
|
||||
choices=TARGET_AUDIENCES,
|
||||
help_text="What is the main focus for your session? If Other, please provide detail in the private abstract.",
|
||||
)
|
||||
|
||||
experience_level = models.IntegerField(
|
||||
choices=EXPERIENCE_LEVEL,
|
||||
help_text="What level of experience will your session be pitched at? Note: We are aiming for a range of session skill levels."
|
||||
)
|
||||
|
||||
talk_format = models.IntegerField(
|
||||
choices=TALK_FORMATS,
|
||||
default=FORMAT_PRESENTATION,
|
||||
help_text="Will your session be a presentation, tutorial or hands-on (e.g how to use KiCAD or some other tooling)?"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Open Hardware Miniconf Proposal"
|
||||
|
||||
|
||||
class SysAdminProposal(MiniconfSessionProposal):
|
||||
|
||||
FORMAT_SHORT_PRESENTATION = 1
|
||||
|
||||
TALK_FORMATS = [
|
||||
(FORMAT_SHORT_PRESENTATION, "Short Presentation (15 or 20 min)"),
|
||||
]
|
||||
|
||||
talk_format = models.IntegerField(
|
||||
choices=TALK_FORMATS,
|
||||
default=FORMAT_SHORT_PRESENTATION,
|
||||
help_text="Talks at the System Administration Miniconf will be short presentations."
|
||||
)
|
||||
|
||||
local_timezone = models.CharField(
|
||||
max_length=100,
|
||||
blank=False,
|
||||
default="",
|
||||
help_text="What is your local timezone that you will be presenting from?"
|
||||
)
|
||||
|
||||
tech_check = models.BooleanField(
|
||||
"AV Tech Check",
|
||||
default=False,
|
||||
help_text="Will you be available for an 'AV Tech Check' on 5 January 2021?"
|
||||
)
|
||||
|
||||
@property
|
||||
def is_sysadmin_miniconf(self):
|
||||
return True
|
||||
|
||||
class Meta:
|
||||
verbose_name = "System Administration Miniconf Proposal"
|
||||
|
|
|
@ -159,7 +159,7 @@ class Command(BaseCommand):
|
|||
name="Swag Badge",
|
||||
description="We have a limited number of "
|
||||
"<a href=\"/attend/shirts/\">Swag Badges</a> available "
|
||||
"for attendees of linux.conf.au 2021. "
|
||||
f"for attendees of {settings.CONFERENCE_NAME}. "
|
||||
"They will be allocated on a first come, first serve basis. "
|
||||
"Please note that they are only available to Australian "
|
||||
"attendees due to shipping limitations.",
|
||||
|
|
|
@ -29,6 +29,7 @@ _PAST_EVENTS = (
|
|||
(2018, "2018 Sydney"),
|
||||
(2019, "2019 Christchurch"),
|
||||
(2020, "2020 Gold Coast"),
|
||||
(2021, "2021 Online"),
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ class AttendeeProfile(rego.AttendeeProfileBase):
|
|||
help_text="Being under 18 will not stop you from attending the "
|
||||
"conference. We need to know whether you are over 18 to "
|
||||
"allow us to cater for you at venues that serve alcohol.",
|
||||
blank=True, # LCA2021 - not needed.
|
||||
blank=True, # LCA2022 - not needed.
|
||||
default=False,
|
||||
)
|
||||
dietary_restrictions = models.CharField(
|
||||
|
|
|
@ -125,7 +125,7 @@ else:
|
|||
|
||||
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '*']
|
||||
|
||||
TIME_ZONE = "Australia/Melbourne"
|
||||
TIME_ZONE = "Australia/Canberra"
|
||||
DATE_FORMAT = "j F Y"
|
||||
LANGUAGE_CODE = "en-au"
|
||||
|
||||
|
@ -229,6 +229,7 @@ INSTALLED_APPS = [
|
|||
"sitetree",
|
||||
"django_jsonfield_backport",
|
||||
"pinax.eventlog",
|
||||
"timezone_field",
|
||||
|
||||
# symposion
|
||||
"symposion",
|
||||
|
@ -363,11 +364,7 @@ PROPOSAL_FORMS = {
|
|||
"talk": "pinaxcon.proposals.forms.TalkProposalForm",
|
||||
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
|
||||
"miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm",
|
||||
### LCA2021 Miniconfs
|
||||
"glam-miniconf": "pinaxcon.proposals.forms.GlamProposalForm",
|
||||
"kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm",
|
||||
"open-hardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm",
|
||||
"sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm",
|
||||
### LCA2022 Miniconfs
|
||||
}
|
||||
MAIN_CONFERENCE_PROPOSAL_KINDS = ("Talk", "Miniconf")
|
||||
|
||||
|
@ -455,6 +452,7 @@ SETTINGS_EXPORT = [
|
|||
'ANALYTICS_KEY',
|
||||
'TIME_ZONE',
|
||||
'LCA_START',
|
||||
'CONFERENCE_EMAIL',
|
||||
]
|
||||
|
||||
if DEV_MODE and DEV_MODE == "LAPTOP":
|
||||
|
@ -516,14 +514,17 @@ class PenguinDinnerCat(Category):
|
|||
return t
|
||||
|
||||
|
||||
CONFERENCE_NAME = os.environ.get('CONFERENCE_NAME', 'linux.conf.au')
|
||||
CONFERENCE_NAME_SHORT = os.environ.get('CONFERENCE_NAME_SHORT', 'LCA')
|
||||
CONFERENCE_EMAIL = os.environ.get('CONFERENCE_EMAIL', DEFAULT_FROM_EMAIL)
|
||||
LCA_TZINFO = pytz.timezone(TIME_ZONE)
|
||||
LCA_START = LCA_TZINFO.localize(datetime(2021, 1, 23))
|
||||
LCA_END = LCA_TZINFO.localize(datetime(2021, 1, 25))
|
||||
LCA_MINICONF_END = LCA_TZINFO.localize(datetime(2021, 1, 23, 23, 59))
|
||||
EARLY_BIRD_DEADLINE = LCA_TZINFO.localize(datetime(2020, 12, 1))
|
||||
PENGUIN_DINNER_TICKET_DATE = date(2021, 1, 23)
|
||||
SPEAKER_DINNER_TICKET_DATE = date(2021, 1, 25)
|
||||
PDNS_TICKET_DATE = date(2021, 1, 24)
|
||||
LCA_START = LCA_TZINFO.localize(datetime(2022, 1, 14))
|
||||
LCA_END = LCA_TZINFO.localize(datetime(2022, 1, 16))
|
||||
LCA_MINICONF_END = LCA_TZINFO.localize(datetime(2022, 1, 14, 23, 59))
|
||||
EARLY_BIRD_DEADLINE = LCA_TZINFO.localize(datetime(2022, 12, 1))
|
||||
PENGUIN_DINNER_TICKET_DATE = date(2022, 1, 14)
|
||||
SPEAKER_DINNER_TICKET_DATE = date(2022, 1, 15)
|
||||
PDNS_TICKET_DATE = date(2022, 1, 16)
|
||||
|
||||
TSHIRT_PRICE = Decimal("25.00")
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{% load sitetree %}
|
||||
{% load static %}
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-dawn-sea">
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-blaze">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img src="{% static 'lca/lca2021.svg' %}" alt="linux.conf.au 2021 logo" height="56px">
|
||||
<img src="{% static 'lca/lca2022.svg' %}" alt="linux.conf.au 2022 logo" height="56px">
|
||||
</a>
|
||||
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<h4>ABN 56 987 117 479</h4>
|
||||
|
||||
<p>
|
||||
Enquiries: please e-mail <a href="mailto:contact@lca2021.linux.org.au">contact@lca2021.linux.org.au</a>
|
||||
Enquiries: please e-mail <a href="mailto:{{ settings.CONFERENCE_EMAIL }}">{{ settings.CONFERENCE_EMAIL }}</a>
|
||||
</p>
|
||||
|
||||
<ul class="list-unstyled">
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
<!-- Cards -->
|
||||
<meta property="og:title" content="{{ head_title }}">
|
||||
<meta property="og:description" content="linux.conf.au 2021 - Jan 23-25 2021, Online, Worldwide" />
|
||||
<meta property="og:description" content="linux.conf.au 2022 - Jan 14-16 2022, Online, Worldwide" />
|
||||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}{{ request.path }}">
|
||||
<meta name="twitter:site" content="@linuxconfau">
|
||||
<meta name="twitter:image:alt" content="{{ head_title }}" />
|
||||
|
@ -101,7 +101,6 @@
|
|||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', '{{ settings.ANALYTICS_KEY }}');
|
||||
</script>
|
||||
{% else %}
|
||||
|
@ -122,10 +121,10 @@
|
|||
<div class="container py-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4 pb-4">
|
||||
<strong>linux.conf.au 2021</strong> <br>
|
||||
Jan 23-25 2021 <br>
|
||||
<strong>linux.conf.au 2022</strong> <br>
|
||||
Jan 14-16 2022 <br>
|
||||
Online, Worldwide <br>
|
||||
<a href="mailto:contact@lca2021.linux.org.au" alt="Email"><i class="far fa-envelope"></i></a>
|
||||
<a href="mailto:{{ settings.CONFERENCE_EMAIL }}" alt="Email"><i class="far fa-envelope"></i></a>
|
||||
<a href="https://twitter.com/linuxconfau" alt="Twitter"><i class="fab fa-twitter"></i></a>
|
||||
<a href="https://www.facebook.com/linuxconferenceaustralia/" alt="Facebook"><i class="fab fa-facebook"></i></a>
|
||||
</div>
|
||||
|
@ -136,7 +135,7 @@
|
|||
<div class="col-md-4 pb-4 text-right">
|
||||
<small>
|
||||
<a href="#">Back to top</a><br>
|
||||
© 2020 linux.conf.au and <a href="http://linux.org.au/">Linux Australia</a><br>
|
||||
© 2021 linux.conf.au and <a href="http://linux.org.au/">Linux Australia</a><br>
|
||||
Linux is a registered trademark of Linus Torvalds <br>
|
||||
<a href="/colophon/">Colophon</a>
|
||||
</small>
|
||||
|
|
|
@ -57,35 +57,6 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if proposal.is_glam_miniconf %}
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">Requires Approval</label>
|
||||
<div class="col-md-10">
|
||||
<p>{{ proposal.require_approval }} </p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if proposal.is_sysadmin_miniconf %}
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">AV Tech Check on 5 Jan 2021</label>
|
||||
<div class="col-md-10">
|
||||
<p>{{ proposal.tech_check }} </p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">Local Timezone</label>
|
||||
<div class="col-md-10">
|
||||
{% if proposal.local_timezone %}
|
||||
<p>{{ proposal.local_timezone|safe }} </p>
|
||||
{% else %}
|
||||
<p><b>None Provided</b></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if proposal.additional_speakers.all %}
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">Additional Speakers</label>
|
||||
|
@ -200,11 +171,19 @@
|
|||
|
||||
{% for speaker in proposal.speakers %}
|
||||
{% if speaker.name %}
|
||||
<div class="card card-default my-3">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{ speaker.name }}</h3>
|
||||
</div>
|
||||
<div class="card my-3">
|
||||
<h4 class="card-header">{{ speaker.name }}</h4>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">Local Timezone</label>
|
||||
<div class="col-md-10">
|
||||
{% if speaker.local_timezone %}
|
||||
{{ speaker.local_timezone|safe }}
|
||||
{% else %}
|
||||
<em>None Provided</em>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="list-label col-md-2">Biography</label>
|
||||
<div class="col-md-10 monospace-text">{{ speaker.biography_html|safe }} </div>
|
||||
|
|
|
@ -27,7 +27,7 @@ django-model-utils==4.0.0
|
|||
django-reversion==3.0.8
|
||||
django-sitetree==1.16.0
|
||||
django-taggit==1.3.0
|
||||
django-timezone-field==4.0
|
||||
django-timezone-field==4.1.2
|
||||
easy-thumbnails==2.7.0
|
||||
bleach==3.2.1
|
||||
pytz>=2020.1
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="220" height="56" viewBox="0 0 220 56"><path d="M44.15,47a7.72,7.72,0,0,1-2.94-2.87,8.31,8.31,0,0,1,0-8.16,7.58,7.58,0,0,1,2.94-2.87,9,9,0,0,1,8.38,0A7.65,7.65,0,0,1,55.47,36a8.39,8.39,0,0,1,0,8.2A7.56,7.56,0,0,1,52.53,47a8.92,8.92,0,0,1-8.38,0Zm7.77-.91a6.65,6.65,0,0,0,2.53-2.49,7.31,7.31,0,0,0,0-7.1A6.65,6.65,0,0,0,51.92,34a7.59,7.59,0,0,0-7.17,0,6.6,6.6,0,0,0-2.54,2.49,7.31,7.31,0,0,0,0,7.1,6.6,6.6,0,0,0,2.54,2.49,7.59,7.59,0,0,0,7.17,0Z" fill="#fff"/><path d="M73.38,32.17V48h-.95L61.68,34.24V48H60.53V32.17h1l10.73,13.7V32.17Z" fill="#fff"/><path d="M78.88,32.17H80V46.91h9.08v1H78.88Z" fill="#fff"/><path d="M92.06,32.17h1.15V48H92.06Z" fill="#fff"/><path d="M111.56,32.17V48h-1L99.86,34.24V48H98.71V32.17h1l10.73,13.7V32.17Z" fill="#fff"/><path d="M127.94,46.91v1H117.06V32.17h10.55v1h-9.4v6.22h8.4v1h-8.4v6.47Z" fill="#fff"/><path d="M144.82,46.91v1H134v-.82l6.67-6.62a9.41,9.41,0,0,0,1.77-2.24,4.45,4.45,0,0,0,.46-1.93,2.9,2.9,0,0,0-1-2.37,4.5,4.5,0,0,0-3-.85,6.9,6.9,0,0,0-2.6.45,5.06,5.06,0,0,0-1.93,1.37l-.81-.72a6,6,0,0,1,2.29-1.6,8.37,8.37,0,0,1,3.14-.56,5.67,5.67,0,0,1,3.7,1.12,3.77,3.77,0,0,1,1.37,3,5.23,5.23,0,0,1-.54,2.32,10.41,10.41,0,0,1-2,2.57l-5.81,5.79Z" fill="#010101"/><path d="M149.85,47.08a6.36,6.36,0,0,1-2.18-2.79,10.57,10.57,0,0,1-.78-4.23,10.63,10.63,0,0,1,.78-4.24A6.33,6.33,0,0,1,149.85,33a5.76,5.76,0,0,1,6.43,0,6.26,6.26,0,0,1,2.18,2.78,10.63,10.63,0,0,1,.78,4.24,10.57,10.57,0,0,1-.78,4.23,6.29,6.29,0,0,1-2.18,2.79,5.76,5.76,0,0,1-6.43,0Zm5.84-.9a5.31,5.31,0,0,0,1.77-2.39,10,10,0,0,0,.63-3.73,10,10,0,0,0-.63-3.73,5.26,5.26,0,0,0-1.77-2.39,4.61,4.61,0,0,0-5.25,0,5.26,5.26,0,0,0-1.77,2.39,10,10,0,0,0-.63,3.73,10,10,0,0,0,.63,3.73,5.31,5.31,0,0,0,1.77,2.39,4.61,4.61,0,0,0,5.25,0Z" fill="#010101"/><path d="M172.22,46.91v1H161.38v-.82l6.67-6.62a9.41,9.41,0,0,0,1.77-2.24,4.31,4.31,0,0,0,.46-1.93,2.92,2.92,0,0,0-1-2.37,4.53,4.53,0,0,0-3-.85,6.94,6.94,0,0,0-2.6.45,5,5,0,0,0-1.92,1.37l-.82-.72a6,6,0,0,1,2.29-1.6,8.37,8.37,0,0,1,3.14-.56,5.67,5.67,0,0,1,3.7,1.12,3.75,3.75,0,0,1,1.38,3,5.11,5.11,0,0,1-.55,2.32,10.33,10.33,0,0,1-2,2.57l-5.82,5.79Z" fill="#010101"/><path d="M178.35,32.17V48H177.2V33.21h-3.85v-1Z" fill="#010101"/><path d="M5.94,5.56H7.4V24.27H18.93v1.32h-13Z" fill="#fff"/><path d="M22.68,5.56h1.46v20H22.68Z" fill="#fff"/><path d="M47.43,5.56v20h-1.2L32.58,8.19v17.4H31.12v-20h1.23L46,23V5.56Z" fill="#fff"/><path d="M56.34,23.53q-2.1-2.21-2.1-6.44V5.56H55.7V17c0,2.46.56,4.31,1.68,5.53a6.34,6.34,0,0,0,4.9,1.83,6.3,6.3,0,0,0,4.86-1.83c1.13-1.22,1.69-3.07,1.69-5.53V5.56h1.46V17.09q0,4.23-2.12,6.44a7.82,7.82,0,0,1-5.92,2.2A7.77,7.77,0,0,1,56.34,23.53Z" fill="#fff"/><path d="M89.37,25.59l-6.89-9.27-6.87,9.27H73.89l7.7-10.33-7.15-9.7h1.71l6.38,8.61,6.38-8.61h1.63l-7.15,9.67,7.7,10.36Z" fill="#fff"/><path d="M97.62,24.42a9.68,9.68,0,0,1-3.71-3.64,10.05,10.05,0,0,1-1.36-5.21,10,10,0,0,1,1.36-5.2,9.68,9.68,0,0,1,3.71-3.64,10.83,10.83,0,0,1,5.31-1.31,11.08,11.08,0,0,1,4,.7,8.37,8.37,0,0,1,3.12,2.07l-.92,1A8.35,8.35,0,0,0,103,6.76a9.19,9.19,0,0,0-4.58,1.15,8.31,8.31,0,0,0-3.23,3.16A8.81,8.81,0,0,0,94,15.57a8.82,8.82,0,0,0,1.18,4.51,8.31,8.31,0,0,0,3.23,3.16A9.19,9.19,0,0,0,103,24.39,8.36,8.36,0,0,0,109.14,22l.92.95A8.53,8.53,0,0,1,106.92,25a11.09,11.09,0,0,1-4,.71A10.83,10.83,0,0,1,97.62,24.42Z" fill="#231f20"/><path d="M154.8,5.56v20h-1.2L140,8.19v17.4h-1.46v-20h1.23L153.34,23V5.56Z" fill="#231f20"/><path d="M163.24,6.88v8.55h10.67v1.32H163.24v8.84h-1.46v-20h13.39V6.88Z" fill="#231f20"/><path d="M191.25,20H179.63l-2.54,5.64h-1.58l9.22-20h1.45l9.22,20h-1.58Zm-.55-1.23L185.44,7.16l-5.23,11.56Z" fill="#fff"/><path d="M200.53,23.53q-2.1-2.21-2.1-6.44V5.56h1.46V17c0,2.46.56,4.31,1.69,5.53a7.41,7.41,0,0,0,9.75,0C212.46,21.34,213,19.49,213,17V5.56h1.46V17.09q0,4.23-2.12,6.44a9.05,9.05,0,0,1-11.83,0Z" fill="#fff"/><path d="M126.11,5.56a9.71,9.71,0,0,0-5.21.08A10.46,10.46,0,0,0,118,7l1,1a8.23,8.23,0,0,1,2.17-1,8.39,8.39,0,0,1,4.5,0,9.23,9.23,0,0,1,6.37,6.37,8.38,8.38,0,0,1,0,4.5,9.66,9.66,0,0,1-6.44,6.45,8.42,8.42,0,0,1-4.51,0,8.87,8.87,0,0,1-4-2.36,8.73,8.73,0,0,1-2.35-4,8.36,8.36,0,0,1,0-4.52,8.59,8.59,0,0,1,1-2.18l-1-1a10.17,10.17,0,0,0-1.33,2.88,9.84,9.84,0,0,0-.06,5.22A10,10,0,0,0,116,23a10,10,0,0,0,4.62,2.7,9.64,9.64,0,0,0,5.22-.06,10.67,10.67,0,0,0,4.71-2.82,10.88,10.88,0,0,0,2.83-4.69,9.71,9.71,0,0,0,.07-5.21,10.1,10.1,0,0,0-2.72-4.64A10.12,10.12,0,0,0,126.11,5.56Z" fill="#231f20"/></svg>
|
Before Width: | Height: | Size: 4.4 KiB |
1
static/src/lca/lca2022.svg
Normal file
1
static/src/lca/lca2022.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="220" height="56" viewBox="0 0 220 56"><path d="M41.76,48.41a7.82,7.82,0,0,1-2.94-2.88,8.29,8.29,0,0,1,0-8.15,7.82,7.82,0,0,1,2.94-2.88,8.45,8.45,0,0,1,4.2-1,8.54,8.54,0,0,1,4.19,1,7.62,7.62,0,0,1,2.94,2.86,8.41,8.41,0,0,1,0,8.21,7.62,7.62,0,0,1-2.94,2.86,8.54,8.54,0,0,1-4.19,1A8.45,8.45,0,0,1,41.76,48.41Zm7.78-.91A6.65,6.65,0,0,0,52.06,45a7.22,7.22,0,0,0,0-7.09,6.65,6.65,0,0,0-2.52-2.5,7.18,7.18,0,0,0-3.58-.9,7.26,7.26,0,0,0-3.6.9,6.67,6.67,0,0,0-2.53,2.5,7.22,7.22,0,0,0,0,7.09,6.67,6.67,0,0,0,2.53,2.5,7.26,7.26,0,0,0,3.6.9A7.18,7.18,0,0,0,49.54,47.5Z" fill="#fff"/><path d="M71,33.57V49.34h-1L59.3,35.64v13.7H58.15V33.57h1l10.73,13.7V33.57Z" fill="#fff"/><path d="M76.49,33.57h1.15V48.31h9.09v1H76.49Z" fill="#fff"/><path d="M89.68,33.57h1.15V49.34H89.68Z" fill="#fff"/><path d="M109.17,33.57V49.34h-.94L97.48,35.64v13.7H96.33V33.57h1L108,47.27V33.57Z" fill="#fff"/><path d="M125.56,48.31v1H114.67V33.57h10.55v1h-9.4v6.22h8.41v1h-8.41v6.47Z" fill="#fff"/><path d="M142.82,47.75v1.4H132V48l6.4-6.27a8,8,0,0,0,1.64-2,3.89,3.89,0,0,0,.43-1.75,2.61,2.61,0,0,0-.93-2.13,4.21,4.21,0,0,0-2.68-.76,5.3,5.3,0,0,0-4.2,1.72l-1.12-1a6,6,0,0,1,2.3-1.63,8.28,8.28,0,0,1,3.16-.57,5.75,5.75,0,0,1,3.72,1.11,3.71,3.71,0,0,1,1.38,3.05,5.26,5.26,0,0,1-.53,2.29,9.59,9.59,0,0,1-2,2.53l-5.24,5.15Z" fill="#231f20"/><path d="M147.67,48.34a6.2,6.2,0,0,1-2.17-2.72,10.28,10.28,0,0,1-.78-4.17,10.26,10.26,0,0,1,.78-4.16,6.14,6.14,0,0,1,2.17-2.72,5.8,5.8,0,0,1,6.36,0,6.25,6.25,0,0,1,2.19,2.72,10.09,10.09,0,0,1,.79,4.16,10.11,10.11,0,0,1-.79,4.17A6.31,6.31,0,0,1,154,48.34a5.8,5.8,0,0,1-6.36,0Zm5.55-1.25a4.86,4.86,0,0,0,1.59-2.18,9.34,9.34,0,0,0,.58-3.46,9.32,9.32,0,0,0-.58-3.45,4.86,4.86,0,0,0-1.59-2.18,4.1,4.1,0,0,0-4.73,0,4.88,4.88,0,0,0-1.6,2.18,9.33,9.33,0,0,0-.57,3.45,9.35,9.35,0,0,0,.57,3.46,4.88,4.88,0,0,0,1.6,2.18,4.15,4.15,0,0,0,4.73,0Z" fill="#231f20"/><path d="M169.75,47.75v1.4H159V48l6.4-6.27a8.25,8.25,0,0,0,1.64-2,3.89,3.89,0,0,0,.43-1.75,2.58,2.58,0,0,0-.94-2.13,4.16,4.16,0,0,0-2.67-.76,5.3,5.3,0,0,0-4.2,1.72l-1.12-1a6,6,0,0,1,2.3-1.63,8.26,8.26,0,0,1,3.15-.57,5.76,5.76,0,0,1,3.73,1.11,3.71,3.71,0,0,1,1.38,3.05,5.26,5.26,0,0,1-.53,2.29,9.59,9.59,0,0,1-2,2.53l-5.24,5.15Z" fill="#231f20"/><path d="M182.25,47.75v1.4h-10.8V48l6.4-6.27a8.49,8.49,0,0,0,1.64-2,4,4,0,0,0,.43-1.75,2.61,2.61,0,0,0-.94-2.13,4.16,4.16,0,0,0-2.67-.76,5.31,5.31,0,0,0-4.21,1.72l-1.12-1a6,6,0,0,1,2.3-1.63,8.32,8.32,0,0,1,3.16-.57,5.78,5.78,0,0,1,3.73,1.11,3.73,3.73,0,0,1,1.37,3.05,5.25,5.25,0,0,1-.52,2.29,9.67,9.67,0,0,1-2,2.53l-5.23,5.15Z" fill="#231f20"/><path d="M5.73,6.86H7.19V25.57H18.72v1.32h-13Z" fill="#fff"/><path d="M22.47,6.86h1.46v20H22.47Z" fill="#fff"/><path d="M47.22,6.86v20H46L32.37,9.5V26.89H30.91v-20h1.23l13.62,17.4V6.86Z" fill="#fff"/><path d="M56.13,24.83c-1.4-1.47-2.1-3.61-2.1-6.44V6.86h1.45V18.34a7.93,7.93,0,0,0,1.69,5.52,6.34,6.34,0,0,0,4.89,1.83,6.3,6.3,0,0,0,4.87-1.83,7.93,7.93,0,0,0,1.69-5.52V6.86h1.46V18.39c0,2.83-.71,5-2.12,6.44A7.82,7.82,0,0,1,62,27,7.77,7.77,0,0,1,56.13,24.83Z" fill="#fff"/><path d="M89.16,26.89l-6.9-9.27L75.4,26.89H73.68l7.7-10.33-7.16-9.7h1.72l6.38,8.62L88.7,6.86h1.63l-7.15,9.67,7.69,10.36Z" fill="#fff"/><path d="M97.41,25.72a9.78,9.78,0,0,1-3.72-3.64,10.14,10.14,0,0,1-1.36-5.2,10.17,10.17,0,0,1,1.36-5.21A9.75,9.75,0,0,1,97.41,8a10.7,10.7,0,0,1,5.31-1.32,11,11,0,0,1,4,.7,8.19,8.19,0,0,1,3.12,2.08l-.91.94a8.4,8.4,0,0,0-6.15-2.37A9.29,9.29,0,0,0,98.2,9.21,8.38,8.38,0,0,0,95,12.37a8.75,8.75,0,0,0-1.18,4.51A8.69,8.69,0,0,0,95,21.38a8.31,8.31,0,0,0,3.23,3.16,9.19,9.19,0,0,0,4.58,1.15,8.39,8.39,0,0,0,6.15-2.4l.91.94a8.37,8.37,0,0,1-3.13,2.09,10.88,10.88,0,0,1-4,.71A10.69,10.69,0,0,1,97.41,25.72Z" fill="#231f20"/><path d="M154.59,6.86v20h-1.2L139.74,9.5V26.89h-1.46v-20h1.23l13.62,17.4V6.86Z" fill="#231f20"/><path d="M163,8.18v8.55H173.7v1.32H163v8.84h-1.46v-20H175V8.18Z" fill="#231f20"/><path d="M191,21.25H179.42l-2.55,5.64H175.3l9.21-20H186l9.22,20h-1.58ZM190.49,20,185.23,8.47,180,20Z" fill="#fff"/><path d="M200.32,24.83c-1.4-1.47-2.1-3.61-2.1-6.44V6.86h1.46V18.34q0,3.69,1.68,5.52a7.42,7.42,0,0,0,9.76,0q1.69-1.83,1.69-5.52V6.86h1.46V18.39c0,2.83-.71,5-2.12,6.44a9.05,9.05,0,0,1-11.83,0Z" fill="#fff"/><path d="M125.89,6.87a9.71,9.71,0,0,0-5.21.07,10.53,10.53,0,0,0-2.87,1.33l1,1a8.54,8.54,0,0,1,6.67-1,8.84,8.84,0,0,1,4,2.36,8.73,8.73,0,0,1,2.36,4,8.39,8.39,0,0,1,0,4.5,9.08,9.08,0,0,1-2.41,4,9.08,9.08,0,0,1-4,2.42,8.33,8.33,0,0,1-4.51,0,8.73,8.73,0,0,1-4-2.36,8.84,8.84,0,0,1-2.36-4,8.52,8.52,0,0,1,0-4.51,8.67,8.67,0,0,1,1-2.18l-1-1a10.17,10.17,0,0,0-1.33,2.88,9.84,9.84,0,0,0-.06,5.22,10,10,0,0,0,2.7,4.63,10.21,10.21,0,0,0,4.62,2.7,9.84,9.84,0,0,0,5.22-.06,10.76,10.76,0,0,0,4.7-2.83,10.8,10.8,0,0,0,2.84-4.69,9.71,9.71,0,0,0,.07-5.21,10.18,10.18,0,0,0-2.72-4.64A10.13,10.13,0,0,0,125.89,6.87Z" fill="#231f20"/></svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -9,23 +9,25 @@ from django.db import migrations, models
|
|||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
def create_lca2018_template(apps, schema_editor):
|
||||
def create_default_template(apps, schema_editor):
|
||||
|
||||
BoardingPassTemplate = apps.get_model("regidesk", "BoardingPassTemplate")
|
||||
|
||||
body = ("This is the plain text version of your boarding pass for "
|
||||
"linux.conf.au 2021.\r\n\r\nWhen you check in at LCA, you'll "
|
||||
f"{settings.CONFERENCE_NAME}.\r\n\r\n"
|
||||
f"When you check in at {settings.CONFERENCE_NAME_SHORT}, you'll "
|
||||
"need to show the QR code you can download from "
|
||||
"{{ qrcode_url }}, or quote registration code: {{ code }} ")
|
||||
html = ("<html>\r\n <body>\r\n <p>This is your boarding "
|
||||
"pass</p>\r\n <p>A copy of the QR Code is required "
|
||||
f"pass for {settings.CONFERENCE_NAME}</p>\r\n "
|
||||
"<p>A copy of the QR Code is required "
|
||||
"for check in, please bring this email on either your "
|
||||
"phone or on a print out.</p>\r\n "
|
||||
"<p><img src=\"data:image/png;base64,{{ qrcode }}\" /></p>\r\n"
|
||||
" <p>Backup Code: {{ code }}</p>\r\n </body>\r\n</html>")
|
||||
template = BoardingPassTemplate(label="LCA2021",
|
||||
from_address="contact@lca2021.linux.org.au",
|
||||
subject="Your boarding pass for LCA2021, "
|
||||
template = BoardingPassTemplate(label=f"{settings.CONFERENCE_NAME_SHORT}",
|
||||
from_address=settings.CONFERENCE_EMAIL,
|
||||
subject=f"Your boarding pass for {settings.CONFERENCE_NAME}, "
|
||||
"{{ user.attendee.attendeeprofilebase.attendeeprofile.name }}",
|
||||
body=body,
|
||||
html_body=html)
|
||||
|
@ -94,6 +96,6 @@ class Migration(migrations.Migration):
|
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='regidesk.BoardingPassTemplate', verbose_name='Template'),
|
||||
),
|
||||
migrations.RunPython(
|
||||
code=create_lca2018_template,
|
||||
code=create_default_template,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<dt class="col-sm-3">Free Text 2</dt>
|
||||
<dd class="col-sm-9">{{ user.attendee.attendeeprofilebase.attendeeprofile.free_text_2 }}</dd>
|
||||
|
||||
{% comment "Not needed for LCA2021 online" %}
|
||||
{% comment "Not needed for LCA2022 online" %}
|
||||
<dt class="col-sm-3">Penguin Dinner Tickets</dt>
|
||||
<dd class="col-sm-9">{{ penguin_dinner_count }}</dd>
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
|||
<dd class="col-sm-9">{{ user.username }}</dd>
|
||||
</dl>
|
||||
|
||||
{% comment "Not needed for LCA2021 online" %}
|
||||
{% comment "Not needed for LCA2022 online" %}
|
||||
<h4>Shirts ordered</h4>
|
||||
<table class="table card-text">
|
||||
{% for shirt in shirts%}
|
||||
|
@ -128,7 +128,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% comment "Not needed for LCA2021 online" %}
|
||||
{% comment "Not needed for LCA2022 online" %}
|
||||
<div class="card {% if check_in.schwag_given %}border-success{% else %}border-danger{% endif %} my-3">
|
||||
<div class="card-header {% if check_in.schwag_given %}text-white bg-success{% endif %}">Schwag</div>
|
||||
<div class="card-body">
|
||||
|
@ -155,7 +155,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% comment "Not needed for LCA2021 online" %}
|
||||
{% comment "Not needed for LCA2022 online" %}
|
||||
<div class="card my-3 {% if check_in.checked_in_bool and check_in.schwag_given %}border-success{% elif check_in.checked_in_bool or check_in.schwag_given %}card-warning{% else %}card-danger{% endif %}">
|
||||
<div class="card-header {% if check_in.checked_in_bool and check_in.schwag_given %}text-white bg-success{% elif check_in.checked_in_bool or check_in.schwag_given %}bg-warning{% endif %}">Bulk actions</div>
|
||||
<div class="card-body">
|
||||
|
|
4
vendor/registrasion/registrasion/views.py
vendored
4
vendor/registrasion/registrasion/views.py
vendored
|
@ -348,7 +348,7 @@ def _guided_registration_profile_and_voucher(request):
|
|||
title="Profile and Personal Information",
|
||||
form=profile_form,
|
||||
description=("<div class=\"text-info\"><em>You can come back and edit these details any time before "
|
||||
"January 6 2021.</em></div>"),
|
||||
"January 1 2022.</em></div>"),
|
||||
)
|
||||
|
||||
return [voucher_section, profile_section]
|
||||
|
@ -387,7 +387,7 @@ def edit_profile(request):
|
|||
if request.user.checkin.checked_in_bool:
|
||||
messages.add_message(
|
||||
request, messages.ERROR,
|
||||
'Profile cannot be edited. Please email contact@lca2021.linux.org.au '
|
||||
f'Profile cannot be edited. Please email {settings.CONFERENCE_EMAIL} '
|
||||
'if you need any changes to your profile.')
|
||||
return redirect(reverse('dashboard'))
|
||||
|
||||
|
|
2
vendor/symposion/speakers/forms.py
vendored
2
vendor/symposion/speakers/forms.py
vendored
|
@ -15,6 +15,7 @@ class SpeakerForm(forms.ModelForm):
|
|||
"experience",
|
||||
"photo",
|
||||
#"telephone",
|
||||
"local_timezone",
|
||||
"homepage",
|
||||
"twitter_username",
|
||||
"accessibility",
|
||||
|
@ -28,6 +29,7 @@ class SpeakerForm(forms.ModelForm):
|
|||
super(SpeakerForm, self).__init__(*a, **k)
|
||||
self.fields['agreement'].required = True
|
||||
self.fields['biography'].required = True
|
||||
self.fields['local_timezone'].required = True
|
||||
|
||||
def clean_twitter_username(self):
|
||||
value = self.cleaned_data["twitter_username"]
|
||||
|
|
19
vendor/symposion/speakers/migrations/0010_speaker_local_timezone.py
vendored
Normal file
19
vendor/symposion/speakers/migrations/0010_speaker_local_timezone.py
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 2.2.17 on 2021-07-05 09:18
|
||||
|
||||
from django.db import migrations
|
||||
import timezone_field.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('symposion_speakers', '0009_auto_20201123_2256'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='speaker',
|
||||
name='local_timezone',
|
||||
field=timezone_field.fields.TimeZoneField(blank=True, help_text='Your local timezone, preferably the one you will use to present from. The conference organisers will use this to assist with scheduling talks.', verbose_name='Local Timezone'),
|
||||
),
|
||||
]
|
9
vendor/symposion/speakers/models.py
vendored
9
vendor/symposion/speakers/models.py
vendored
|
@ -6,6 +6,8 @@ from django.utils.translation import ugettext_lazy as _
|
|||
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from timezone_field import TimeZoneField
|
||||
|
||||
from symposion import constants
|
||||
from symposion.text_parser import parse
|
||||
|
||||
|
@ -50,6 +52,13 @@ class Speaker(models.Model):
|
|||
"during the conference week. If you don't have one, or do "
|
||||
"not wish to provide it, then enter NONE in this field.")
|
||||
)
|
||||
local_timezone = TimeZoneField(
|
||||
blank=True,
|
||||
verbose_name=_("Local Timezone"),
|
||||
help_text=_("Your local timezone, preferably the one you will use to "
|
||||
"present from. The conference organisers will "
|
||||
"use this to assist with scheduling talks.")
|
||||
)
|
||||
homepage = models.URLField(
|
||||
blank=True,
|
||||
help_text=_(u"Your home page, if you have one")
|
||||
|
|
Loading…
Reference in a new issue