Merge branch 'staging' into develop
This commit is contained in:
commit
ecd61baf0a
9 changed files with 26 additions and 30 deletions
|
|
@ -84,7 +84,7 @@ def create(user, exists_ok = False, fields = None):
|
|||
|
||||
if result:
|
||||
if not exists_ok:
|
||||
frappe.throw(_('Chat Profile for User {user} exists.'.format(user = user)))
|
||||
frappe.throw(_('Chat Profile for User {0} exists.').format(user))
|
||||
else:
|
||||
dprof = frappe.new_doc('Chat Profile')
|
||||
dprof.user = user
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ def is_direct(owner, other, bidirectional = False):
|
|||
exists = len(get_room(owner, other)) == 1
|
||||
if bidirectional:
|
||||
exists = exists or len(get_room(other, owner)) == 1
|
||||
|
||||
|
||||
return exists
|
||||
|
||||
def get_chat_room_user_set(users, filter_ = None):
|
||||
|
|
@ -56,19 +56,17 @@ class ChatRoom(Document):
|
|||
|
||||
if self.type == "Direct":
|
||||
if len(self.users) != 1:
|
||||
frappe.throw(_('{type} room must have atmost one user.'.format(type = self.type)))
|
||||
frappe.throw(_('{0} room must have atmost one user.').format(self.type))
|
||||
|
||||
other = squashify(self.users)
|
||||
|
||||
if self.is_new():
|
||||
if is_direct(self.owner, other.user, bidirectional = True):
|
||||
frappe.throw(_('Direct room with {other} already exists.'.format(
|
||||
other = other.user
|
||||
)))
|
||||
frappe.throw(_('Direct room with {0} already exists.').format(other.user))
|
||||
|
||||
if self.type == "Group" and not self.room_name:
|
||||
frappe.throw(_('Group name cannot be empty.'))
|
||||
|
||||
|
||||
def before_save(self):
|
||||
if not self.is_new():
|
||||
self.get_doc_before_save()
|
||||
|
|
@ -83,12 +81,12 @@ class ChatRoom(Document):
|
|||
update = { }
|
||||
for changed in diff.changed:
|
||||
field, old, new = changed
|
||||
|
||||
|
||||
if field == 'last_message':
|
||||
new = chat_message.get(new)
|
||||
|
||||
update.update({ field: new })
|
||||
|
||||
|
||||
if diff.added or diff.removed:
|
||||
update.update(dict(users = [u.user for u in self.users]))
|
||||
|
||||
|
|
@ -121,7 +119,7 @@ def get(user, rooms = None, fields = None, filters = None):
|
|||
|
||||
default = ['name', 'type', 'room_name', 'creation', 'owner', 'avatar']
|
||||
handle = ['users', 'last_message']
|
||||
|
||||
|
||||
param = [f for f in fields if f not in handle]
|
||||
|
||||
rooms = frappe.get_all('Chat Room',
|
||||
|
|
@ -151,7 +149,7 @@ def get(user, rooms = None, fields = None, filters = None):
|
|||
rooms[i]['last_message'] = None
|
||||
|
||||
rooms = squashify(dictify(rooms))
|
||||
|
||||
|
||||
return rooms
|
||||
|
||||
@frappe.whitelist(allow_guest = True)
|
||||
|
|
@ -177,7 +175,7 @@ def create(kind, owner, users = None, name = None):
|
|||
room.type = kind
|
||||
room.owner = owner
|
||||
room.room_name = name
|
||||
|
||||
|
||||
dusers = [ ]
|
||||
|
||||
if kind != 'Visitor':
|
||||
|
|
@ -198,7 +196,7 @@ def create(kind, owner, users = None, name = None):
|
|||
for user in dsettings.chat_operators:
|
||||
if user.user not in users:
|
||||
room.append('users', user)
|
||||
|
||||
|
||||
room.save(ignore_permissions = True)
|
||||
|
||||
room = get(owner, rooms = room.name)
|
||||
|
|
@ -218,5 +216,5 @@ def history(room, user, fields = None, limit = 10, start = None, end = None):
|
|||
|
||||
mess = chat_message.history(room, limit = limit, start = start, end = end)
|
||||
mess = squashify(mess)
|
||||
|
||||
|
||||
return dictify(mess)
|
||||
|
|
@ -98,7 +98,7 @@ def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False, paren
|
|||
@frappe.whitelist()
|
||||
def get_single_value(doctype, field):
|
||||
if not frappe.has_permission(doctype):
|
||||
frappe.throw(_("No permission for {doctype}".format(doctype = doctype)), frappe.PermissionError)
|
||||
frappe.throw(_("No permission for {0}").format(doctype), frappe.PermissionError)
|
||||
value = frappe.db.get_single_value(doctype, field)
|
||||
return value
|
||||
|
||||
|
|
|
|||
|
|
@ -687,9 +687,8 @@ def setup_user_email_inbox(email_account, awaiting_password, email_id, enable_ou
|
|||
"awaiting_password": awaiting_password or 0
|
||||
})
|
||||
else:
|
||||
frappe.msgprint(_("Enabled email inbox for user {users}".format(
|
||||
users=" and ".join([frappe.bold(user.get("name")) for user in user_names])
|
||||
)))
|
||||
users = " and ".join([frappe.bold(user.get("name")) for user in user_names])
|
||||
frappe.msgprint(_("Enabled email inbox for user {0}").format(users))
|
||||
|
||||
ask_pass_update()
|
||||
|
||||
|
|
|
|||
2
frappe/hooks.py
Executable file → Normal file
2
frappe/hooks.py
Executable file → Normal file
|
|
@ -12,7 +12,7 @@ source_link = "https://github.com/frappe/frappe"
|
|||
app_license = "MIT"
|
||||
|
||||
develop_version = '11.x.x-develop'
|
||||
staging_version = '11.0.0-beta'
|
||||
staging_version = '11.0.1'
|
||||
|
||||
app_email = "info@frappe.io"
|
||||
|
||||
|
|
|
|||
|
|
@ -796,7 +796,14 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
|
|||
.then(({ message }) => {
|
||||
if (!message) return;
|
||||
const data = frappe.utils.dict(message.keys, message.values);
|
||||
if (!(data && data.length)) return;
|
||||
if (!(data && data.length)) {
|
||||
// this doc was changed and should not be visible
|
||||
// in the listview according to filters applied
|
||||
// let's remove it manually
|
||||
this.data = this.data.filter(d => d.name !== name);
|
||||
this.render();
|
||||
return;
|
||||
}
|
||||
|
||||
const datum = data[0];
|
||||
const index = this.data.findIndex(d => d.name === datum.name);
|
||||
|
|
|
|||
|
|
@ -144,11 +144,6 @@ frappe.ui.FieldSelect = Class.extend({
|
|||
table = df.parent;
|
||||
}
|
||||
|
||||
// check if this option should be added
|
||||
if (this.filter_options && this.filter_options(table, df.fieldname) === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(frappe.model.no_value_type.indexOf(df.fieldtype) == -1 &&
|
||||
!(me.fields_by_name[df.parent] && me.fields_by_name[df.parent][df.fieldname])) {
|
||||
this.options.push({
|
||||
|
|
|
|||
|
|
@ -48,9 +48,6 @@ frappe.ui.Filter = class {
|
|||
filter_fields: this.filter_fields,
|
||||
select: (doctype, fieldname) => {
|
||||
this.set_field(doctype, fieldname);
|
||||
},
|
||||
filter_options: (doctype, fieldname) => {
|
||||
return this.filter_items(doctype, fieldname);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -21,10 +21,10 @@ frappe.ui.FilterGroup = class {
|
|||
let promises = [];
|
||||
|
||||
for (const filter of filters) {
|
||||
promises.push(this.add_filter(...filter));
|
||||
promises.push(() => this.add_filter(...filter));
|
||||
}
|
||||
|
||||
return Promise.all(promises);
|
||||
return frappe.run_serially(promises);
|
||||
}
|
||||
|
||||
add_filter(doctype, fieldname, condition, value, hidden) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue