Merge pull request #68 from fossunited/invite-flow-fixes

fix: invite flow issues
This commit is contained in:
Anand Chitipothu
2021-05-04 23:23:40 +05:30
committed by GitHub
2 changed files with 37 additions and 18 deletions

View File

@@ -46,14 +46,18 @@ class InviteRequest(Document):
@frappe.whitelist(allow_guest=True) @frappe.whitelist(allow_guest=True)
def create_invite_request(invite_email): def create_invite_request(invite_email):
try:
frappe.get_doc({ if frappe.db.exists("User", invite_email):
return "user"
if frappe.db.exists("Invite Request", {"invite_email": invite_email}):
return "invite"
frappe.get_doc({
"doctype": "Invite Request", "doctype": "Invite Request",
"invite_email": invite_email "invite_email": invite_email
}).save(ignore_permissions=True) }).save(ignore_permissions=True)
return "OK" return "OK"
except frappe.UniqueValidationError:
frappe.throw(_("Email {0} has already been used to request an invite").format(invite_email))
@frappe.whitelist(allow_guest=True) @frappe.whitelist(allow_guest=True)

View File

@@ -4,22 +4,37 @@
</form> </form>
<script> <script>
frappe.ready(() => { frappe.ready(() => {
$("#submit-invite-request").click(function () { $("#submit-invite-request").click(function () {
frappe.call({ var invite_email = $("#invite_email").val()
method: "community.lms.doctype.invite_request.invite_request.create_invite_request", frappe.call({
args: { method: "community.lms.doctype.invite_request.invite_request.create_invite_request",
invite_email: $("#invite_email").val() args: {
}, invite_email: invite_email
callback: (data) => { },
if (data.message == "OK") { callback: (data) => {
$("#invite-request-form").hide(); $("#invite-request-form").hide();
var message = `<div>
<p class="lead">Thanks for your interest in Mon School. We have recorded your interest and we will get back to you shortly.</p> if (data.message == "OK") {
</div>`; var message = `<div>
<p class="lead">Thanks for your interest in Mon School. We have recorded your interest and we will get back to you shortly.</p>
</div>`;
}
else if (data.message == "invite") {
var message = `<div>
<p class="lead">Email ${invite_email} has already been used to request an invitation.</p>
</div>`;
}
else if (data.message == "user") {
var message = `<div>
<p class="lead">Looks like there is already an account with email ${invite_email}. Would you like to <a href="/login">login</a>.</p>
</div>`;
}
$(".jumbotron").append(message); $(".jumbotron").append(message);
} }
} })
}) })
}) })
})
</script> </script>