Compare commits

..

No commits in common. "c4766d9198d35a3f7353fec2d93dad3bbe2ab101" and "1a41a0bee25c2be9bb82930a596700bddab3c22c" have entirely different histories.

11 changed files with 32 additions and 112 deletions

View file

@ -91,9 +91,9 @@ class AttendeeProfile(rego.AttendeeProfileBase):
max_length=64,
verbose_name="Free text line 1",
help_text="A line of free text that will appear on your badge. Use "
"this for your Mastodon or Twitter handle, IRC nick, "
"your preferred pronouns or anything else you'd like people "
"to see on your badge.",
"this for your Twitter handle, IRC nick, your preferred "
"pronouns or anything else you'd like people to see on "
"your badge.",
blank=True,
)
free_text_2 = models.CharField(
@ -114,7 +114,9 @@ class AttendeeProfile(rego.AttendeeProfileBase):
address_line_1 = models.CharField(
verbose_name="Address line 1",
help_text="This address, if provided, will appear on your invoices.",
help_text="This address, if provided, will appear on your invoices. "
"It is also where we will ship your Open Hardware Kit "
"if you are allocated one.",
max_length=1024,
blank=True,
)
@ -193,7 +195,6 @@ class AttendeeProfile(rego.AttendeeProfileBase):
help_text="Select to be subscribed to the low-traffic lca-announce "
"mailing list",
blank=True,
default=False,
)
lca_chat = models.BooleanField(

View file

@ -67,12 +67,12 @@
{% block proposals_body %}
<p>Pay your invoice with your Visa, Mastercard, or American Express credit or debit card. Card payments are processed by <a href="https://stripe.com">Stripe</a>.</p>
<p>Pay for your linux.conf.au attendance with your Visa, Mastercard, or American Express credit or debit card. Card payments are processed by <a href="https://stripe.com">Stripe</a>.</p>
<p>
No data on this form is retained by {% conference_name %}, rather it is
sent to Stripe. In particular, credit card details are not sent
to Linux Australia. You must allow JavaScript from <code>js.stripe.com</code> and <code>stripe.network</code> to complete payment.
to linux.conf.au. You must allow JavaScript from <code>js.stripe.com</code> and <code>stripe.network</code> to complete payment.
</p>
<p>You have <strong>${{ invoice.balance_due }}</strong> remaining to pay on this invoice.</p>

View file

@ -131,7 +131,7 @@
<a href="mailto:{{ settings.CONFERENCE_EMAIL }}" alt="Email"><i class="far fa-envelope"></i></a>&nbsp;&nbsp;<a
href="https://twitter.com/_everythingopen" alt="Twitter"><i class="fab fa-twitter"></i></a>&nbsp;&nbsp;<a
href="https://www.facebook.com/EverythingOpenConference" alt="Facebook"><i class="fab fa-facebook"></i></a>&nbsp;&nbsp;<a
href="https://www.facebook.com/linuxconferenceaustralia/" alt="Facebook"><i class="fab fa-facebook"></i></a>&nbsp;&nbsp;<a
href="https://www.linkedin.com/showcase/everythingopen/" alt="LinkedIn"><i class="fab fa-linkedin"></i></a>
</div>
<div class="col-md-4 pb-4 text-center">

View file

@ -72,7 +72,7 @@
<h3>Account Management</h3>
<p>If you would like to change your registered email address or password, you can use our self-service account management portal</p>
<div>
<a class="btn btn-primary" role="button" href="https://login.linux.conf.au/manage/">Account Management</a>
<a class="btn btn-primary" role="button" href="https://login.everythingopen.au/manage/">Account Management</a>
</div>
</div>
</div>

View file

@ -1,6 +1,6 @@
<h3>New Proposal</h3>
<p>Click one of the following links to create a session proposal.</p>
<p>Once submitted you will be able to see the status of your proposals, as well manage the submission and co-speakers from this page.</p>
<p>Click one of the following links to create a speaking or miniconf proposal.</p>
<p>Once submitted you will be able to see the status of your proposals, as well manage the submission and co-speakers from this page</p>
<div>
{% for kind in proposal_kinds %}
<a class="btn btn-outline-primary mb-2" href="{% url "proposal_submit_kind" kind.slug %}">{{ kind }}</a>

View file

@ -1,13 +1,14 @@
<h3>Speaker Profile</h3>
{% if not user.speaker_profile %}
<p>
To create a session proposal you must first create a speaker profile.
To create a speaking or miniconf proposal you must first create a speaker
profile.
</p>
{% endif %}
<p>
Your speaker profile is independent of your attendee profile.
The details you provide here will be used during the session selection process,
and to populate your speaker bio on the conference website.
Your speaker profile is independent of your attendee profile and the
details you provide here will be used during selection and to populate
your speaker bio on the conference website.
</p>
<div>
{% if not user.speaker_profile %}

View file

@ -3,7 +3,7 @@
<div class="row">
<div class="col-12">
<h2 class="mb-3">{% trans "Speaking and Sessions" %}</h2>
<h2 class="mb-3">{% trans "Speaking and Miniconfs" %}</h2>
</div>
</div>

View file

@ -12,7 +12,7 @@
{% with timetable|day_has_tracks:timetable.day as has_tracks %}
{% if has_tracks %}
<tr>
<th scope="row" class="time"><em>Track</em></th>
<th scope="row" class="time"><em>Miniconf</em></th>
{% for room in timetable.rooms %}
{% with room|trackname:timetable.day as track_name %}
<th scope="column" class="track-name">{% if track_name %}<p>{{ track_name }}</p>{% endif %}</th>

View file

@ -39,7 +39,7 @@ CairoSVG==2.4.2
PyJWT==2.0.0
# Registripe
django-countries==7.3.2
django-countries>=6.1.3
pinax-stripe==4.4.0
requests==2.24.0
stripe==2.55.0

View file

@ -18,17 +18,12 @@
<div class="row">
<div class="col-lg-6">
<div class="col-6">
<p><strong id="note"></strong></p>
<video id="preview"" autoplay style=" height: 400px;"></video>
<p>Select camera:</p>
<ul id="camera-list" class="list-group">
<li class="list-group-item active" aria-current="true">No camera found</li>
</ul>
</div>
<div class="col-lg-6">
<div class="col-6">
<div id="code_div" class="form-group has-feedback has-error">
<label class="control-label" for="bpcode">Boarding Pass Code</label>
<input id="bptext" type="text" class="form-control" id="bpcode" placeholder="Code">
@ -48,9 +43,6 @@
<script type="text/javascript">
let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
let activeCameraId = null;
let availableCameras = [];
scanner.addListener('scan', function (content) {
// This should ensure we start with the lca base domain. However, I don't have the time for this
// considering we have quite a few domains right now.
@ -65,66 +57,9 @@
}
});
function startCamera(cameras) {
// Update available cameras.
availableCameras = cameras;
// Display the cameras on the page.
let cameraList = document.getElementById('camera-list');
cameraList.innerHTML = "";
for (let i = 0; i < cameras.length; ++i) {
let camera = cameras[i];
let cameraItem = document.createElement('li');
cameraItem.textContent = formatCameraName(camera.name);
cameraItem.setAttribute('data-cameraid', camera.id);
let classNames = "list-group-item";
if (i == 0) {
classNames = classNames + " active";
}
cameraItem.className = classNames;
cameraItem.addEventListener("click", (event) => {
selectCamera(cameraItem);
let activeCameras = cameraList.getElementsByClassName("active");
for (let j = 0; j < activeCameras.length; ++j) {
let newClassNames = activeCameras[j].className.replace(" active", "");
activeCameras[j].className = newClassNames;
}
cameraItem.className = cameraItem.className + " active";
});
cameraList.appendChild(cameraItem);
}
scanner.start(cameras[0]);
}
function startCamera(cameras) { scanner.start(cameras[0]); }
function errorCamera(error) { console.error(e); }
function formatCameraName(name) {
return name || '(unknown)';
}
function selectCamera(cameraItem) {
let cameraId = cameraItem.dataset.cameraid;
// Find the camera in the list.
let camera = null;
for (let i = 0; i < availableCameras.length; ++i) {
if (availableCameras[i].id === cameraId) {
camera = availableCameras[i];
break;
}
}
scanner.start(camera);
}
Instascan.Camera.getCameras().then(startCamera).catch(errorCamera);
</script>
@ -157,4 +92,4 @@
console.log(is_good);
};
</script>
{% endblock %}
{% endblock %}

View file

@ -6,16 +6,13 @@
{% block body %}
{% load registrasion_tags %}
{% load lca2018_tags %}
{% load waffle_tags %}
{% items_purchased as purchased %}
{% items_pending as pending %}
{% items_purchased 1 as ticket %}
<!-- {% items_purchased 6 as shirts %} -->
{% total_items_purchased 3 as penguin_dinner_count %}
<!-- {% total_items_purchased 3 as penguin_dinner_count %} -->
<!-- {% total_items_purchased 4 as speakers_dinner_count %} -->
<!-- {% total_items_purchased 5 as pdns_count %} -->
{% items_purchased 5 as raffle_tickets %}
{% ticket_type as ticket_type %}
<a type="button" class="btn btn-outline-primary" href="{% url 'regidesk:check_in_scanner' %}">Return to scanning page</a>
@ -39,10 +36,10 @@
<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 EO2023" %}
<dt class="col-sm-3">Penguin Dinner Tickets</dt>
<dd class="col-sm-9">{{ penguin_dinner_count }}</dd>
{% comment "Not needed for EO2023" %}
<dt class="col-sm-3">Speaker Dinner Tickets</dt>
<dd class="col-sm-9">{{ speakers_dinner_count }}</dd>
@ -57,7 +54,7 @@
<dd class="col-sm-9">{{ user.username }}</dd>
</dl>
{% flag "checkin_shirts" %}
{% comment "Not needed for EO2023" %}
<h4>Shirts ordered</h4>
<table class="table card-text">
{% for shirt in shirts%}
@ -67,23 +64,10 @@
</tr>
{% endfor %}
</table>
{% endflag %}
{% flag "checkin_raffle" %}
<h4>Raffle Tickets</h4>
<table class="table card-text">
{% for raffle in raffle_tickets %}
<tr>
<td>{{ raffle.product }}</td>
<td>{{ raffle.quantity }}</td>
</tr>
{% endfor %}
</table>
{% endflag %}
{% endcomment %}
</div>
</div>
{% flag "checkin_venueless" %}
<div class="card my-3">
<div class="card-header">Venueless</div>
<div class="card-body">
@ -99,7 +83,6 @@
</dl>
</div>
</div>
{% endflag %}
<div class="card my-3">
<div class="card-header">Badge Preview</div>
@ -145,7 +128,7 @@
</div>
</div>
{% flag "checkin_schwag" %}
{% comment "Not needed for EO2023" %}
<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">
@ -159,7 +142,7 @@
</form>
</div>
</div>
{% endflag %}
{% endcomment %}
<div class="card my-3">
<div class="card-header">Log Exception</div>
@ -172,7 +155,7 @@
</div>
</div>
{% flag "checkin_bulk" %}
{% comment "Not needed for EO2023" %}
<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">
@ -193,7 +176,7 @@
</form>
</div>
</div>
{% endflag %}
{% endcomment %}
<a type="button" class="btn btn-outline-primary" href="{% url 'regidesk:check_in_scanner' %}">Return to scanning page</a>