Merge pull request #514 from frappe/develop
This commit is contained in:
commit
737bfb2ac9
@ -2,6 +2,7 @@
|
|||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
from frappe import _
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
from crm.install import after_install
|
from crm.install import after_install
|
||||||
@ -12,6 +13,20 @@ class FCRMSettings(Document):
|
|||||||
def restore_defaults(self, force=False):
|
def restore_defaults(self, force=False):
|
||||||
after_install(force)
|
after_install(force)
|
||||||
|
|
||||||
|
def validate(self):
|
||||||
|
self.do_not_allow_to_delete_if_standard()
|
||||||
|
|
||||||
|
def do_not_allow_to_delete_if_standard(self):
|
||||||
|
if not self.has_value_changed("dropdown_items"):
|
||||||
|
return
|
||||||
|
old_items = self.get_doc_before_save().get("dropdown_items")
|
||||||
|
standard_new_items = [d.name1 for d in self.dropdown_items if d.is_standard]
|
||||||
|
standard_old_items = [d.name1 for d in old_items if d.is_standard]
|
||||||
|
deleted_standard_items = set(standard_old_items) - set(standard_new_items)
|
||||||
|
if deleted_standard_items:
|
||||||
|
frappe.throw(_("Cannot delete standard items {0}").format(", ".join(deleted_standard_items)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def after_migrate():
|
def after_migrate():
|
||||||
sync_table("dropdown_items", "standard_dropdown_items")
|
sync_table("dropdown_items", "standard_dropdown_items")
|
||||||
|
|||||||
@ -106,28 +106,32 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row-reverse">
|
<div class="flex justify-between flex-row-reverse">
|
||||||
<Button
|
<Button
|
||||||
variant="solid"
|
variant="solid"
|
||||||
:label="__('Update')"
|
:label="__('Update')"
|
||||||
:disabled="!settings.isDirty"
|
:disabled="!settings.isDirty"
|
||||||
@click="updateSettings"
|
@click="updateSettings"
|
||||||
/>
|
/>
|
||||||
|
<ErrorMessage :message="settings.save.error" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import ImageUploader from '@/components/Controls/ImageUploader.vue'
|
import ImageUploader from '@/components/Controls/ImageUploader.vue'
|
||||||
import Grid from '@/components/Controls/Grid.vue'
|
import Grid from '@/components/Controls/Grid.vue'
|
||||||
import { FormControl, Badge } from 'frappe-ui'
|
import { FormControl, Badge, ErrorMessage } from 'frappe-ui'
|
||||||
import { getSettings } from '@/stores/settings'
|
import { getSettings } from '@/stores/settings'
|
||||||
import { showSettings } from '@/composables/settings'
|
import { showSettings } from '@/composables/settings'
|
||||||
|
|
||||||
const { _settings: settings, setupBrand } = getSettings()
|
const { _settings: settings, setupBrand } = getSettings()
|
||||||
|
|
||||||
function updateSettings() {
|
function updateSettings() {
|
||||||
settings.save.submit()
|
settings.save.submit(null, {
|
||||||
showSettings.value = false
|
onSuccess: () => {
|
||||||
setupBrand()
|
showSettings.value = false
|
||||||
|
setupBrand()
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user