forked from CGM_Public/pretix_original
Added code generator for bulk coupons
This commit is contained in:
@@ -87,7 +87,7 @@ class VoucherBulkForm(VoucherForm):
|
||||
widget=forms.Textarea,
|
||||
label=_("Codes"),
|
||||
help_text=_(
|
||||
"Add one voucher code per line"
|
||||
"Add one voucher code per line. We suggest that you copy this list and save it into a file."
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -9,6 +9,20 @@
|
||||
{% bootstrap_form_errors form %}
|
||||
<fieldset>
|
||||
<legend>{% trans "Voucher codes" %}</legend>
|
||||
<div class="form-group">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control input-xs"
|
||||
id="voucher-bulk-codes-num"
|
||||
placeholder="{% trans "Number" %}">
|
||||
<div class="input-group-btn">
|
||||
<button class="btn btn-default" type="button" id="voucher-bulk-codes-generate">
|
||||
{% trans "Generate random codes" %}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% bootstrap_field form.codes layout="horizontal" %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
|
||||
@@ -53,4 +53,29 @@ $(function () {
|
||||
$("#id_required").change(question_page_toggle_view);
|
||||
question_page_toggle_view();
|
||||
}
|
||||
|
||||
// Vouchers
|
||||
$("#voucher-bulk-codes-generate").click(function () {
|
||||
var charset = "ABCDEFGHKLMNPQRSTUVWXYZ23456789",
|
||||
i = 0, j = 0, len = 16,
|
||||
num = parseInt($("#voucher-bulk-codes-num").val()), text = "";
|
||||
for (j = 0; j < num; j++) {
|
||||
var key = [];
|
||||
if (window.crypto && window.crypto.getRandomValues && Uint8Array) {
|
||||
key = new Uint8Array(len);
|
||||
window.crypto.getRandomValues(key);
|
||||
} else {
|
||||
for (i = 0; i < len; i++) {
|
||||
key.push(Math.floor(Math.random() * charset.length));
|
||||
}
|
||||
}
|
||||
if (i > 0) {
|
||||
text += "\n";
|
||||
}
|
||||
for (i = 0; i < len; i++) {
|
||||
text += charset.charAt(key[i] % charset.length);
|
||||
}
|
||||
}
|
||||
$("#id_codes").html(text);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user