Browse Source

Publish version update

version2
venkataakhil 1 year ago
parent
commit
38e81834bd
  1. 58
      smart_service/apis/master_api.py
  2. 6
      smart_service/apis/v2/master.py
  3. 60
      smart_service/transactions/doctype/publish/publish.js
  4. 59
      smart_service/transactions/doctype/publish/publish.py

58
smart_service/apis/master_api.py

@ -7,6 +7,13 @@ from frappe.utils import cstr
import datetime import datetime
from smart_service.apis.app_user_login import input_validation from smart_service.apis.app_user_login import input_validation
import os import os
import json
from frappe import utils
from frappe.utils import logger
import copy
frappe.utils.logger.set_log_level("DEBUG")
date_format = "%Y-%m-%d %H:%M:%S.%f"
current_db_name = frappe.conf.get("db_name") current_db_name = frappe.conf.get("db_name")
site_name = cstr(frappe.local.site) site_name = cstr(frappe.local.site)
@ -391,3 +398,54 @@ def app_modules(LSD):
except Exception as e: except Exception as e:
frappe.local.response['http_status_code'] = 400 frappe.local.response['http_status_code'] = 400
return {"status": 0, "error": e, 'data': None} return {"status": 0, "error": e, 'data': None}
@frappe.whitelist(methods=["POST"], allow_guest=1)
def role_mapping():
# logger_file = f'Role Mapping'
# logger = frappe.logger(logger_file, allow_site=True, file_count=100)
# logger.info(f'Start')
req = json.loads(frappe.request.data)
try:
lsdt = req['LSD']
if lsdt != '':
try:
datetime.datetime.strptime(lsdt, date_format)
except:
frappe.local.response['http_status_code'] = 400
return {"status": 0, "error": "Invalid date format", 'data': None}
except Exception as e:
frappe.local.response['http_status_code'] = 403
return {"status": 0, "error": e}
data = {}
try:
module_details = frappe.db.sql(f"""select module_name,case when active_status= 'Active' Then true else false end as active_status,
app_menu_id from `tabModule Master`
where modified >= '{lsdt}' order by display_order;""", as_dict=1)
module_details1 = frappe.db.sql(f"""select module_name,0 as active_status,app_menu_id from `tabModule Master`
where modified >= '{lsdt}' order by display_order;""", as_dict=1)
data['module'] = module_details
role_maping_details = frappe.db.sql(f"""SELECT role,skill_id,modules from `tabRole Master`
where modified>='{lsdt}' order by display_order;""", as_dict=1)
for r in role_maping_details:
role_list = r['modules'].split(",")
# logger.info(f'Module data-{module_details1}')
modules = copy.deepcopy(module_details1)
# logger.info(f'Module-{modules}')
for m in modules:
if m['module_name'] in role_list:
m['active_status'] = 1
r['modules'] = modules
data['role_mapping'] = role_maping_details
return {"status": 1, "error": None, 'lsdt': utils.now(), "data": data}
except Exception as e:
return {"status": 0, "error": e, 'lsdt': utils.now(), "data": None}

6
smart_service/apis/v2/master.py

@ -33,8 +33,8 @@ def get_role_mapping():
where modified >= '{lsdt}' order by display_order;""", as_dict=1) where modified >= '{lsdt}' order by display_order;""", as_dict=1)
data['module'] = module_details data['module'] = module_details
if lsdt: if lsdt:
role_maping_details = frappe.db.sql(f"""SELECT role,my_id,display_order,modules,active_status,modified from `tabRole Master` where modified>='{lsdt}' role_maping_details = frappe.db.sql(f"""SELECT role,my_id,display_order,modules,active_status,modified from `tabRole Master`
order by display_order;""", as_dict=1) where modified>='{lsdt}' order by display_order;""", as_dict=1)
else: else:
role_maping_details = frappe.db.sql(f"""SELECT role,my_id,display_order,modules,active_status,modified from `tabRole Master` role_maping_details = frappe.db.sql(f"""SELECT role,my_id,display_order,modules,active_status,modified from `tabRole Master`
order by display_order;""", as_dict=1) order by display_order;""", as_dict=1)
@ -50,7 +50,7 @@ def get_role_mapping():
def get_repair_service_mapping(vehicle, language): def get_repair_service_mapping(vehicle, language):
try: try:
repair_service_details = [] repair_service_details = []
if language != 'en': if language == 'en':
repair_service_details = frappe.db.sql(f""" select vehicle,vehicle_id,name,language,check_list_name,active_status,display_order,my_id from repair_service_details = frappe.db.sql(f""" select vehicle,vehicle_id,name,language,check_list_name,active_status,display_order,my_id from
`tabRepair Service Mapping` where vehicle = '{vehicle}' and language = '{language}'; """, as_dict=1) `tabRepair Service Mapping` where vehicle = '{vehicle}' and language = '{language}'; """, as_dict=1)
else: else:

60
smart_service/transactions/doctype/publish/publish.js

@ -53,11 +53,13 @@ frappe.ui.form.on('Publish', {
}, },
refresh: function (frm) { refresh: function (frm) {
console.log("calling")
if (frm.doc.docstatus == 0 && !frm.is_new() && frm.doc.publish_type != "Global") { if (frm.doc.docstatus == 0 && !frm.is_new() && frm.doc.publish_type != "Global" && frm.doc.publish_module!="Automotive System") {
debugger
$('[data-route="Form/Publish/' + frm.doc.name + '"]').find('.primary-action').html("Internal Publish") $('[data-route="Form/Publish/' + frm.doc.name + '"]').find('.primary-action').html("Internal Publish")
} }
if (frm.doc.docstatus == 0 && frm.doc.publish_type == "Global") { if (frm.doc.docstatus == 0 && frm.doc.publish_type == "Global" && frm.doc.publish_module!="Automotive System") {
debugger
$('[data-route="Form/Publish/' + frm.doc.name + '"]').find('.primary-action').html("Global Publish") $('[data-route="Form/Publish/' + frm.doc.name + '"]').find('.primary-action').html("Global Publish")
} }
if (frm.doc.publish_module == 'Automotive System') { if (frm.doc.publish_module == 'Automotive System') {
@ -90,7 +92,8 @@ frappe.ui.form.on('Publish', {
document.querySelectorAll("[data-fieldname='km_report']")[1].style.color = "#FFFFFF"; document.querySelectorAll("[data-fieldname='km_report']")[1].style.color = "#FFFFFF";
document.querySelectorAll("[data-fieldname='add_variant_mapping_to_publish']")[1].style.backgroundColor = "#e31a37"; document.querySelectorAll("[data-fieldname='add_variant_mapping_to_publish']")[1].style.backgroundColor = "#e31a37";
document.querySelectorAll("[data-fieldname='add_variant_mapping_to_publish']")[1].style.color = "#FFFFFF"; document.querySelectorAll("[data-fieldname='add_variant_mapping_to_publish']")[1].style.color = "#FFFFFF";
if (frm.doc.docstatus === 1 && frm.doc.publish_type == "Internal" && frm.doc.publish_status == 'Published' && !frm.doc.global_publish && frappe.user.has_role('_Publisher')) { if (frm.doc.docstatus === 1 && frm.doc.publish_type == "Internal" && frm.doc.publish_status == 'Published' && frm.doc.publish_module=='Automotive System' && !frm.doc.global_publish && frappe.user.has_role('_Publisher')) {
frappe.call({ frappe.call({
method: "smart_service.transactions.doctype.publish.publish.max_publish", method: "smart_service.transactions.doctype.publish.publish.max_publish",
args: { args: {
@ -98,6 +101,7 @@ frappe.ui.form.on('Publish', {
}, },
callback: function (r) { callback: function (r) {
if (r.message) { if (r.message) {
debugger
if (r.message == frm.doc.version) { if (r.message == frm.doc.version) {
frm.add_custom_button(__('Global Publish'), function () { frm.add_custom_button(__('Global Publish'), function () {
frappe.call({ frappe.call({
@ -117,8 +121,9 @@ frappe.ui.form.on('Publish', {
} }
if (frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish' && frappe.user.has_role('_Publisher') && frm.doc.publish_module == 'Automotive System') { if (frm.doc.docstatus === 1 && frm.doc.publish_status == 'To Publish' && frappe.user.has_role('_Publisher') && frm.doc.publish_module == 'Automotive System') {
debugger
frm.add_custom_button(__('Publish'), function () { frm.add_custom_button(__('Publish'), function () {
frappe.confirm('Are you sure you want to Publish?', frappe.confirm('Are you sure you want to Publish?',
() => { () => {
@ -221,12 +226,13 @@ frappe.ui.form.on('Publish', {
// action to perform if No is selected // action to perform if No is selected
}); });
}).addClass("btn-warning").css({ 'background-color': '#f5b0cd', 'color': 'black' }); }).addClass("btn-warning").css({ 'background-color': '#f5b0cd', 'color': 'black' });
} else if (frm.doc.publish_status == 'Published') { }
else if (frm.doc.publish_status == 'Published') {
frm.set_read_only(); frm.set_read_only();
frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1); frm.set_df_property('add_variant_mapping_to_publish', 'hidden', 1);
} }
if (frm.doc.docstatus === 0 && frm.doc.publish_status == 'To Publish') { if (frm.doc.docstatus === 0 && frm.doc.publish_status == 'To Publish') {
frm.get_field('system_mapping').grid.add_custom_button(__('Add to Publish'), function () { frm.get_field('system_mapping').grid.add_custom_button(__('Add to Publish'), function () {
@ -301,12 +307,45 @@ frappe.ui.form.on('Publish', {
} }
if (frm.doc.docstatus == 1) { if (frm.doc.docstatus == 1) {
$(".grid-buttons").hide(); $(".grid-buttons").hide();
} }
} }
if (frm.doc.docstatus == 1 && !frm.is_new() && frm.doc.publish_type != "Global" && frm.doc.publish_module != 'Automotive System') {
if (frm.doc.docstatus == 1 && frm.doc.publish_status == 'Published' && !frm.is_new() && frm.doc.publish_type != "Global" && frm.doc.publish_module != 'Automotive System') {
debugger
frappe.call({
method: "smart_service.transactions.doctype.publish.publish.max_publish_new_module",
args: {
"doc": frm.doc.name
},
callback: function (r) {
debugger
if (r.message) {
debugger
if (r.message) {
frm.add_custom_button(__('Global Publish'), function () {
frappe.call({
method: "smart_service.transactions.doctype.publish.publish.generate_global_publish",
args: {
name: frm.doc.name
},
callback: function (r) {
if (r.message.status == "success") {
window.location.href = r.message.url + "/app/publish" + "/" + r.message.message
}
}
})
}).addClass("btn-primary");
}
}
}
})
frappe.call({ frappe.call({
method: "smart_service.transactions.doctype.publish.publish.max_publish_new_module", method: "smart_service.transactions.doctype.publish.publish.max_publish_new_module",
args: { args: {
@ -327,7 +366,7 @@ frappe.ui.form.on('Publish', {
if (r.message.status == "success") { if (r.message.status == "success") {
window.location.href = r.message.url + "/app/publish" + "/" + r.message.message window.location.href = r.message.url + "/app/publish" + "/" + r.message.message
} }
} }
}) })
@ -339,6 +378,7 @@ frappe.ui.form.on('Publish', {
} }
}, },
validate: function (frm) { validate: function (frm) {

59
smart_service/transactions/doctype/publish/publish.py

@ -50,11 +50,12 @@ class Publish(Document):
def on_submit(self): def on_submit(self):
if self.docstatus == 1 and self.publish_status == 'To Publish' and self.publish_module == 'Repair service' and self.publish_type == 'Internal': if self.docstatus == 1 and self.publish_status == 'To Publish' and self.publish_module == 'Repair service' and self.publish_type == 'Internal':
repair_checksheet_publish(self.vehicle, self.vehicle_id, repair_checksheet_publish(self.vehicle, self.vehicle_id,
self.language, self.publish_type, self.language, self.publish_type,
self.release_description, self.variant, self.release_description, self.variant,
self.repair_checksheet_publish) self.repair_checksheet_publish)
update_publish_status = frappe.db.sql(
"""update `tabPublish` set publish_status='Published' where name='{0}'""".format(self.name))
if self.docstatus == 1 and self.publish_status == 'To Publish' and self.publish_module == 'Feature Finder' and self.publish_type == 'Internal' and self.feature_finder_publish: if self.docstatus == 1 and self.publish_status == 'To Publish' and self.publish_module == 'Feature Finder' and self.publish_type == 'Internal' and self.feature_finder_publish:
feature_finder_publish(self.vehicle, self.vehicle_id, feature_finder_publish(self.vehicle, self.vehicle_id,
@ -62,7 +63,6 @@ class Publish(Document):
self.release_description,self.feature_finder_publish,self.variant) self.release_description,self.feature_finder_publish,self.variant)
if self.docstatus == 1 and self.publish_module =='Feature Finder' and self.publish_type == 'Global': if self.docstatus == 1 and self.publish_module =='Feature Finder' and self.publish_type == 'Global':
feature_finder_publish(self.vehicle, self.vehicle_id, feature_finder_publish(self.vehicle, self.vehicle_id,
self.language, self.publish_type, self.language, self.publish_type,
self.release_description,self.feature_finder_publish, self.release_description,self.feature_finder_publish,
@ -76,8 +76,8 @@ class Publish(Document):
self.release_description, self.variant, self.release_description, self.variant,
self.repair_checksheet_publish) self.repair_checksheet_publish)
update_repair_published_docs(self) update_repair_published_docs(self)
update_publish_status = frappe.db.sql( # update_publish_status = frappe.db.sql(
"""update `tabPublish` set publish_status='Published' where name='{0}'""".format(self.name)) # """update `tabPublish` set publish_status='Published' where name='{0}'""".format(self.name))
def onload1(self): def onload1(self):
current_db_name = frappe.conf.get("db_name") current_db_name = frappe.conf.get("db_name")
# To validate updated procedure status # To validate updated procedure status
@ -244,6 +244,7 @@ def global_publish(doc):
publish_record.vehicle = doc.vehicle publish_record.vehicle = doc.vehicle
publish_record.vehicle_id = doc.vehicle_id publish_record.vehicle_id = doc.vehicle_id
publish_record.variant_mapping = doc.variant_mapping publish_record.variant_mapping = doc.variant_mapping
publish_record.publish_module=doc.publish_module
publish_record.variant_mapping_status = doc.variant_mapping_status publish_record.variant_mapping_status = doc.variant_mapping_status
publish_record.kilometer_mapping = doc.kilometer_mapping publish_record.kilometer_mapping = doc.kilometer_mapping
publish_record.km_active_status = doc.km_active_status publish_record.km_active_status = doc.km_active_status
@ -353,7 +354,7 @@ def update_mapping(variant_mapping, doc):
def get_vm_asset(doc, lang): def get_vm_asset(doc, lang):
doc = frappe.get_doc("Variant Mapping", doc) doc = frappe.get_doc("Variant Mapping", doc)
vm_assets = frappe.db.sql("""select category,language,attach_file,active_status from {0}.`tabVariant Mapping_Assets` vm_assets = frappe.db.sql("""select category,language,attach_file,active_status from {0}.`tabVariant Mapping_Assets`
where parent = "{1}" and language '{2}' and published = '0'; """.format(current_db_name, doc.name, lang), as_dict=1) where parent = "{1}" and language ='{2}' and published = 0; """.format(current_db_name, doc.name, lang), as_dict=1)
return vm_assets return vm_assets
@ -827,28 +828,26 @@ def max_publish_new_module(doc):
return ver return ver
@frappe.whitelist() # @frappe.whitelist()
def cal_ver_new_module(vehicle, lang, publish_type, doc): # def cal_ver_new_module(vehicle, lang, publish_type, doc):
update_procedure(vehicle, lang, publish_type, doc) # current_db_name = frappe.conf.get("db_name")
current_db_name = frappe.conf.get("db_name") # doc = frappe.get_doc("Publish", doc)
doc = frappe.get_doc("Publish", doc) # ver = frappe.db.sql(f"""select max(creation) from `tabPublish` where vehicle = "{vehicle}" and language = "{lang}";""",as_dict=1)
ver = frappe.db.sql("""select max(creation) from `tabPublish` where vehicle = "{vehi}" and language = "{lang}";""" # v = 0.0
.format(vehi=vehicle, lang=lang)) # if publish_type == 'Global':
v = 0.0 # if ver[0][0] == None:
if publish_type == 'Global': # v = 1.0
if ver[0][0] == None: # else:
v = 1.0 # v = int(float(ver[0][0])) + 1.0
else:
v = int(float(ver[0][0])) + 1.0 # elif publish_type == 'Internal':
# if ver[0][0] == None:
elif publish_type == 'Internal': # v = 0.01
if ver[0][0] == None: # else:
v = 0.01 # v = float(ver[0][0]) + 0.01
else: # v = "{:.2f}".format(v)
v = float(ver[0][0]) + 0.01 # doc.version = v
v = "{:.2f}".format(v) # frappe.db.sql("""update {0}.`tabPublish` set version = "{1}" where name = "{2}";""".format(
doc.version = v # current_db_name, v, doc.name))
frappe.db.sql("""update {0}.`tabPublish` set version = "{1}" where name = "{2}";""".format( # frappe.db.commit()
current_db_name, v, doc.name)) # return v
frappe.db.commit()
return v
Loading…
Cancel
Save