Ver a proveniência

review changes

version-14
Anupam há 3 anos
committed by Leela vadlamudi
ascendente
cometimento
cfe4dc41c0
8 ficheiros alterados com 119 adições e 132 eliminações
  1. +0
    -0
      frappe/printing/doctype/network_printer_settings/__init__.py
  2. +1
    -1
      frappe/printing/doctype/network_printer_settings/network_printer_settings.js
  3. +9
    -24
      frappe/printing/doctype/network_printer_settings/network_printer_settings.json
  4. +3
    -3
      frappe/printing/doctype/network_printer_settings/network_printer_settings.py
  5. +1
    -1
      frappe/printing/doctype/network_printer_settings/test_network_printer_settings.py
  6. +1
    -8
      frappe/printing/doctype/print_settings/print_settings.json
  7. +103
    -94
      frappe/printing/page/print/print.js
  8. +1
    -1
      frappe/utils/print_format.py

frappe/printing/doctype/printer_settings/__init__.py → frappe/printing/doctype/network_printer_settings/__init__.py Ver ficheiro


frappe/printing/doctype/printer_settings/printer_settings.js → frappe/printing/doctype/network_printer_settings/network_printer_settings.js Ver ficheiro

@@ -1,7 +1,7 @@
// Copyright (c) 2021, Frappe Technologies and contributors
// For license information, please see license.txt

frappe.ui.form.on('Printer Settings', {
frappe.ui.form.on('Network Printer Settings', {
onload (frm) {
if (!frm.is_new()) {
frm.trigger("connect_print_server");

frappe/printing/doctype/printer_settings/printer_settings.json → frappe/printing/doctype/network_printer_settings/network_printer_settings.json Ver ficheiro

@@ -1,17 +1,15 @@
{
"actions": [],
"autoname": "format:{server_ip}-{printer_name}",
"creation": "2021-09-07 11:13:57.724404",
"autoname": "Prompt",
"creation": "2021-09-17 11:26:06.943999",
"doctype": "DocType",
"editable_grid": 1,
"engine": "InnoDB",
"field_order": [
"server_ip",
"printer_name",
"port",
"column_break_4",
"reference_doctype",
"reference_name"
"printer_name"
],
"fields": [
{
@@ -22,13 +20,6 @@
"label": "Server IP",
"reqd": 1
},
{
"fieldname": "printer_name",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Printer Name",
"reqd": 1
},
{
"default": "631",
"fieldname": "port",
@@ -42,24 +33,18 @@
"fieldtype": "Column Break"
},
{
"fieldname": "reference_doctype",
"fieldtype": "Link",
"label": "Reference DocType",
"options": "DocType"
},
{
"fieldname": "reference_name",
"fieldtype": "Dynamic Link",
"label": "Reference Name",
"options": "reference_doctype"
"fieldname": "printer_name",
"fieldtype": "Select",
"label": "Printer Name",
"reqd": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-09-13 17:19:30.713385",
"modified": "2021-09-17 11:30:16.781655",
"modified_by": "Administrator",
"module": "Printing",
"name": "Printer Settings",
"name": "Network Printer Settings",
"owner": "Administrator",
"permissions": [
{

frappe/printing/doctype/printer_settings/printer_settings.py → frappe/printing/doctype/network_printer_settings/network_printer_settings.py Ver ficheiro

@@ -5,7 +5,7 @@ import frappe
from frappe.model.document import Document
from frappe import _

class PrinterSettings(Document):
class NetworkPrinterSettings(Document):
@frappe.whitelist()
def get_printers_list(self,ip="localhost",port=631):
printer_list = []
@@ -32,5 +32,5 @@ class PrinterSettings(Document):
return printer_list

@frappe.whitelist()
def get_printer_setting(doctype):
return frappe.db.get_value('Printer Settings', {'reference_doctype': doctype})
def get_network_printer_settings():
return frappe.db.get_list('Network Printer Settings', pluck='name')

frappe/printing/doctype/printer_settings/test_printer_settings.py → frappe/printing/doctype/network_printer_settings/test_network_printer_settings.py Ver ficheiro

@@ -4,5 +4,5 @@
# import frappe
import unittest

class TestPrinterSettings(unittest.TestCase):
class TestNetworkPrinterSettings(unittest.TestCase):
pass

+ 1
- 8
frappe/printing/doctype/print_settings/print_settings.json Ver ficheiro

@@ -19,7 +19,6 @@
"allow_print_for_cancelled",
"server_printer",
"enable_print_server",
"default_printer_setting",
"raw_printing_section",
"enable_raw_printing",
"print_style_section",
@@ -157,19 +156,13 @@
"fieldname": "font_size",
"fieldtype": "Float",
"label": "Font Size"
},
{
"fieldname": "default_printer_setting",
"fieldtype": "Link",
"label": "Default Printer Setting",
"options": "Printer Settings"
}
],
"icon": "fa fa-cog",
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
"modified": "2021-09-09 11:07:23.042310",
"modified": "2021-09-17 12:59:14.783694",
"modified_by": "Administrator",
"module": "Printing",
"name": "Print Settings",


+ 103
- 94
frappe/printing/page/print/print.js Ver ficheiro

@@ -113,17 +113,6 @@ frappe.ui.form.PrintView = class {
},
).$input;

if (cint(this.print_settings.enable_print_server)) {
this.printer_sel = this.add_sidebar_item({
fieldtype: 'Link',
fieldname: 'printer',
placeholder: __('Printer'),
options: 'Printer Settings',
default: this.printer_setting
}).$input;
this.get_printer_settings();
}

this.letterhead_selector_df = this.add_sidebar_item(
{
fieldtype: 'Autocomplete',
@@ -161,25 +150,6 @@ frappe.ui.form.PrintView = class {
return field;
}

get_printer_settings() {
let route = frappe.get_route();
let doctype = route[1];
let me = this;
frappe.call({
method: 'frappe.printing.doctype.printer_settings.printer_settings.get_printer_setting',
args: {
doctype: doctype,
},
callback: function(r) {
if (r.message) {
me.printer_setting = r.message;
} else {
me.printer_setting = me.print_settings.default_printer_setting;
}
me.printer_sel.val(me.printer_setting);
},
});
}
get_default_option_for_select(value) {
return {
label: value,
@@ -195,10 +165,7 @@ frappe.ui.form.PrintView = class {
frappe.set_route('Form', 'Print Settings');
});

if (
frappe.model.get_doc(':Print Settings', 'Print Settings')
.enable_raw_printing == '1'
) {
if (this.print_settings.enable_raw_printing == '1') {
this.page.add_menu_item(__('Raw Printing Setting'), () => {
this.printer_setting_dialog();
});
@@ -209,6 +176,12 @@ frappe.ui.form.PrintView = class {
this.edit_print_format()
);
}

if (this.print_settings.enable_print_server) {
this.page.add_menu_item(__('Select Network Printer'), () =>
this.network_printer_setting_dialog()
);
}
}

show(frm) {
@@ -490,73 +463,109 @@ frappe.ui.form.PrintView = class {

printit() {
let me = this;
frappe.call({
method:
'frappe.printing.doctype.print_settings.print_settings.is_print_server_enabled',
callback: function(data) {
if (data.message) {
frappe.call({
method: 'frappe.utils.print_format.print_by_server',
args: {
doctype: me.frm.doc.doctype,
name: me.frm.doc.name,
printer_setting: me.printer_sel.val(),
print_format: me.selected_format(),
no_letterhead: me.with_letterhead(),
letterhead: me.get_letterhead(),
},
callback: function() {},
});
} else if (me.get_mapped_printer().length === 1) {
// printer is already mapped in localstorage (applies for both raw and pdf )
if (me.is_raw_printing()) {
me.get_raw_commands(function(out) {
frappe.ui.form
.qz_connect()
.then(function() {
let printer_map = me.get_mapped_printer()[0];
let data = [out.raw_commands];
let config = qz.configs.create(printer_map.printer);
return qz.print(config, data);
})
.then(frappe.ui.form.qz_success)
.catch((err) => {
frappe.ui.form.qz_fail(err);
});

if (me.print_settings.enable_print_server) {
if (localStorage.getItem('network_printer')) {
me.print_by_server();
} else {
me.network_printer_setting_dialog(() => me.print_by_server());
}
} else if (me.get_mapped_printer().length === 1) {
// printer is already mapped in localstorage (applies for both raw and pdf )
if (me.is_raw_printing()) {
me.get_raw_commands(function(out) {
frappe.ui.form
.qz_connect()
.then(function() {
let printer_map = me.get_mapped_printer()[0];
let data = [out.raw_commands];
let config = qz.configs.create(printer_map.printer);
return qz.print(config, data);
})
.then(frappe.ui.form.qz_success)
.catch((err) => {
frappe.ui.form.qz_fail(err);
});
} else {
frappe.show_alert(
});
} else {
frappe.show_alert(
{
message: __('PDF printing via "Raw Print" is not supported.'),
subtitle: __(
'Please remove the printer mapping in Printer Settings and try again.'
),
indicator: 'info',
},
14
);
//Note: need to solve "Error: Cannot parse (FILE)<URL> as a PDF file" to enable qz pdf printing.
}
} else if (me.is_raw_printing()) {
// printer not mapped in localstorage and the current print format is raw printing
frappe.show_alert(
{
message: __('Printer mapping not set.'),
subtitle: __(
'Please set a printer mapping for this print format in the Printer Settings'
),
indicator: 'warning',
},
14
);
me.printer_setting_dialog();
} else {
me.render_page('/printview?', true);
}
}

print_by_server() {
let me = this;
if (localStorage.getItem('network_printer')) {
frappe.call({
method: 'frappe.utils.print_format.print_by_server',
args: {
doctype: me.frm.doc.doctype,
name: me.frm.doc.name,
printer_setting: localStorage.getItem('network_printer'),
print_format: me.selected_format(),
no_letterhead: me.with_letterhead(),
letterhead: me.get_letterhead(),
},
callback: function() {},
});
}
}
network_printer_setting_dialog(callback) {
let me = this;
frappe.call({
method: 'frappe.printing.doctype.network_printer_settings.network_printer_settings.get_network_printer_settings',
callback: function(r) {
if(r.message) {
let d = new frappe.ui.Dialog({
title: __('Select Network Printer'),
fields: [
{
message: __('PDF printing via "Raw Print" is not supported.'),
subtitle: __(
'Please remove the printer mapping in Printer Settings and try again.'
),
indicator: 'info',
},
14
);
//Note: need to solve "Error: Cannot parse (FILE)<URL> as a PDF file" to enable qz pdf printing.
}
} else if (me.is_raw_printing()) {
// printer not mapped in localstorage and the current print format is raw printing
frappe.show_alert(
{
message: __('Printer mapping not set.'),
subtitle: __(
'Please set a printer mapping for this print format in the Printer Settings'
),
indicator: 'warning',
"label" : "Printer",
"fieldname": "printer",
"fieldtype": "Select",
"reqd": 1,
"options": r.message
}
],
primary_action: function() {
localStorage.setItem('network_printer', d.get_values().printer);
if (typeof callback == "function") {
callback();
}
d.hide();
},
14
);
me.printer_setting_dialog();
} else {
me.render_page('/printview?', true);
primary_action_label: __('Select')
});
d.show();
}
},
});
}

render_page(method, printit = false) {
let w = window.open(
frappe.urllib.get_full_url(


+ 1
- 1
frappe/utils/print_format.py Ver ficheiro

@@ -99,7 +99,7 @@ def report_to_pdf(html, orientation="Landscape"):

@frappe.whitelist()
def print_by_server(doctype, name, printer_setting, print_format=None, doc=None, no_letterhead=0):
print_settings = frappe.get_doc("Printer Settings", printer_setting)
print_settings = frappe.get_doc("Network Printer Settings", printer_setting)
try:
import cups
except ImportError:


Carregando…
Cancelar
Guardar