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,
|
widget=forms.Textarea,
|
||||||
label=_("Codes"),
|
label=_("Codes"),
|
||||||
help_text=_(
|
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 %}
|
{% bootstrap_form_errors form %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "Voucher codes" %}</legend>
|
<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" %}
|
{% bootstrap_field form.codes layout="horizontal" %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|||||||
@@ -53,4 +53,29 @@ $(function () {
|
|||||||
$("#id_required").change(question_page_toggle_view);
|
$("#id_required").change(question_page_toggle_view);
|
||||||
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