feat: discussions tab and web form for messages
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"actions": [],
|
||||
"allow_guest_to_view": 1,
|
||||
"autoname": "field:email",
|
||||
"allow_rename": 1,
|
||||
"autoname": "field:username",
|
||||
"creation": "2021-02-12 15:47:23.591567",
|
||||
"doctype": "DocType",
|
||||
"editable_grid": 1,
|
||||
@@ -14,7 +15,7 @@
|
||||
"photo",
|
||||
"short_intro",
|
||||
"bio",
|
||||
"user_name",
|
||||
"username",
|
||||
"route"
|
||||
],
|
||||
"fields": [
|
||||
@@ -29,8 +30,7 @@
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Full Name",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
"reqd": 1
|
||||
},
|
||||
{
|
||||
"allow_in_quick_entry": 1,
|
||||
@@ -56,12 +56,6 @@
|
||||
"fieldtype": "Markdown Editor",
|
||||
"label": "Bio"
|
||||
},
|
||||
{
|
||||
"fieldname": "user_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "User Name",
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "route",
|
||||
"fieldtype": "Data",
|
||||
@@ -74,12 +68,18 @@
|
||||
"options": "Email",
|
||||
"reqd": 1,
|
||||
"unique": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "username",
|
||||
"fieldtype": "Data",
|
||||
"label": "User Name",
|
||||
"unique": 1
|
||||
}
|
||||
],
|
||||
"has_web_view": 1,
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2021-03-12 17:41:32.786762",
|
||||
"modified": "2021-03-22 12:16:18.823037",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Community",
|
||||
"name": "Community Member",
|
||||
|
||||
@@ -7,6 +7,7 @@ import frappe
|
||||
from frappe.website.website_generator import WebsiteGenerator
|
||||
import re
|
||||
from frappe import _
|
||||
from frappe.model.rename_doc import rename_doc
|
||||
|
||||
class CommunityMember(WebsiteGenerator):
|
||||
def get_context(self, context):
|
||||
@@ -14,24 +15,27 @@ class CommunityMember(WebsiteGenerator):
|
||||
return context
|
||||
|
||||
def validate(self):
|
||||
self.validate_user_name()
|
||||
if self.route != self.user_name:
|
||||
self.route = self.user_name
|
||||
self.validate_username()
|
||||
if self.route != self.username:
|
||||
self.route = self.username
|
||||
|
||||
def validate_user_name(self):
|
||||
if self.user_name:
|
||||
if len(self.user_name) < 4:
|
||||
def validate_username(self):
|
||||
if self.username:
|
||||
if len(self.username) < 4:
|
||||
frappe.throw(_("Username must be atleast 4 characters long."))
|
||||
if not re.match("^[A-Za-z0-9_]*$", self.user_name):
|
||||
if not re.match("^[A-Za-z0-9_]*$", self.username):
|
||||
frappe.throw(_("Username can only contain alphabets, numbers and underscore."))
|
||||
self.user_name = self.user_name.lower()
|
||||
self.username = self.username.lower()
|
||||
|
||||
def on_update(self):
|
||||
if self.username != self.name:
|
||||
rename_doc(self.doctype, self.name, self.username, force=False, merge=False, ignore_permissions=True, ignore_if_exists=False)
|
||||
|
||||
def create_member_from_user(doc, method):
|
||||
member = frappe.get_doc({
|
||||
"doctype": "Community Member",
|
||||
"full_name": doc.full_name,
|
||||
"user_name": doc.username,
|
||||
"username": doc.username if len(doc.username) > 3 else doc.username + "_community",
|
||||
"email": doc.email,
|
||||
"route": doc.username,
|
||||
"owner": doc.email
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
frappe.ready(function() {
|
||||
// bind events here
|
||||
frappe.web_form.after_save = () => {
|
||||
window.location.href = frappe.web_form.get_value("username")
|
||||
}
|
||||
})
|
||||
@@ -19,7 +19,7 @@
|
||||
"is_standard": 1,
|
||||
"login_required": 1,
|
||||
"max_attachment_size": 0,
|
||||
"modified": "2021-03-12 18:14:19.363139",
|
||||
"modified": "2021-03-22 12:04:22.571655",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Community",
|
||||
"name": "update-profile",
|
||||
@@ -50,14 +50,14 @@
|
||||
},
|
||||
{
|
||||
"allow_read_on_all_link_options": 0,
|
||||
"fieldname": "user_name",
|
||||
"fieldname": "username",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 0,
|
||||
"label": "User Name",
|
||||
"max_length": 0,
|
||||
"max_value": 0,
|
||||
"read_only": 0,
|
||||
"reqd": 0,
|
||||
"reqd": 1,
|
||||
"show_in_filter": 0
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user