diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js index dea571d177..a3f37607b9 100644 --- a/home/page/latest_updates/latest_updates.js +++ b/home/page/latest_updates/latest_updates.js @@ -8,7 +8,7 @@ erpnext.updates = [ "Bookmarks: Add bookmarks via toolbar by clicking on the sign.", ]], ["5th February, 2013", [ - "Holiday Block List: Block users from taking leave on certain days.", + "Leave Block List: Block users from taking leave on certain days.", ]], ["2nd February, 2013", [ "Warehouse: Added table Warehouse User to restrict Warehouse Entry per user.", diff --git a/hr/doctype/department/department.txt b/hr/doctype/department/department.txt index 34b6bc7c3e..f5a6ff6101 100644 --- a/hr/doctype/department/department.txt +++ b/hr/doctype/department/department.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-01-10 16:34:13", + "creation": "2013-02-05 11:48:26", "docstatus": 0, - "modified": "2013-02-04 15:34:55", + "modified": "2013-02-14 17:21:51", "modified_by": "Administrator", "owner": "Administrator" }, @@ -60,10 +60,10 @@ { "description": "Days for which Holidays are blocked for this department.", "doctype": "DocField", - "fieldname": "holiday_block_list", + "fieldname": "leave_block_list", "fieldtype": "Link", - "label": "Holiday Block List", - "options": "Holiday Block List" + "label": "Leave Block List", + "options": "Leave Block List" }, { "doctype": "DocPerm", diff --git a/hr/doctype/department/test_department.py b/hr/doctype/department/test_department.py index 9db4f61ac7..c4664a5112 100644 --- a/hr/doctype/department/test_department.py +++ b/hr/doctype/department/test_department.py @@ -1,5 +1,5 @@ test_records = [ [{"doctype":"Department", "department_name":"_Test Department"}], [{"doctype":"Department", "department_name":"_Test Department with Block List", - "holiday_block_list": "_Test Holiday Block List"}], + "leave_block_list": "_Test Leave Block List"}], ] diff --git a/hr/doctype/holiday_block_list/locale/_messages_doc.json b/hr/doctype/holiday_block_list/locale/_messages_doc.json deleted file mode 100644 index e521830510..0000000000 --- a/hr/doctype/holiday_block_list/locale/_messages_doc.json +++ /dev/null @@ -1,16 +0,0 @@ -[ - "Allow Users", - "Block Holidays on important days.", - "Block Days", - "HR", - "Company", - "Holiday Block List Allowed", - "Holiday Block List Dates", - "Holiday Block List", - "Stop users from making Leave Applications on following days.", - "Applies to Company", - "Holiday Block List Name", - "Year", - "If not checked, the list will have to be added to each Department where it has to be applied.", - "Allow the following users to make Leave Applications for block days." -] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/_messages_js.json b/hr/doctype/holiday_block_list/locale/_messages_js.json deleted file mode 100644 index 0637a088a0..0000000000 --- a/hr/doctype/holiday_block_list/locale/_messages_js.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/_messages_py.json b/hr/doctype/holiday_block_list/locale/_messages_py.json deleted file mode 100644 index d2e6ee4d62..0000000000 --- a/hr/doctype/holiday_block_list/locale/_messages_py.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "Date is repeated", - "Block Date" -] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/ar-doc.json b/hr/doctype/holiday_block_list/locale/ar-doc.json deleted file mode 100644 index 05fdaea92e..0000000000 --- a/hr/doctype/holiday_block_list/locale/ar-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646", - "Allow the following users to make Leave Applications for block days.": "\u062a\u0633\u0645\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0644\u062c\u0639\u0644 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0625\u062c\u0627\u0632\u0629 \u0644\u0639\u062f\u0629 \u0623\u064a\u0627\u0645 \u0643\u062a\u0644\u0629.", - "Applies to Company": "\u064a\u0646\u0637\u0628\u0642 \u0639\u0644\u0649 \u0634\u0631\u0643\u0629", - "Block Days": "\u0643\u062a\u0644\u0629 \u0623\u064a\u0627\u0645", - "Block Holidays on important days.": "\u0645\u0646\u0639 \u0627\u0644\u0625\u062c\u0627\u0632\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u0647\u0627\u0645\u0629.", - "Company": "\u0634\u0631\u0643\u0629", - "HR": "HR", - "Holiday Block List": "\u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", - "Holiday Block List Allowed": "\u0639\u0637\u0644\u0629 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062d\u0638\u0631 \u0645\u0633\u0645\u0648\u062d", - "Holiday Block List Dates": "\u0645\u0648\u0627\u0639\u064a\u062f \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", - "Holiday Block List Name": "\u0627\u0633\u0645 \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", - "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0625\u0646 \u0644\u0645 \u064a\u0643\u0646 \u062a\u0645\u060c \u0633\u064a\u0643\u0648\u0646 \u0644\u062f\u064a\u0643 \u0642\u0627\u0626\u0645\u0629 \u062a\u0636\u0627\u0641 \u0625\u0644\u0649 \u0643\u0644 \u0642\u0633\u0645 \u062d\u064a\u062b \u0623\u0646\u0647 \u0644\u0627 \u0628\u062f \u0645\u0646 \u062a\u0637\u0628\u064a\u0642\u0647\u0627.", - "Stop users from making Leave Applications on following days.": "\u0648\u0642\u0641 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0646 \u0625\u062c\u0631\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0639\u0644\u0649 \u0625\u062c\u0627\u0632\u0629 \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u0627\u0644\u064a\u0629.", - "Year": "\u0639\u0627\u0645" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/ar-py.json b/hr/doctype/holiday_block_list/locale/ar-py.json deleted file mode 100644 index e50eb48b7b..0000000000 --- a/hr/doctype/holiday_block_list/locale/ar-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "\u0645\u0646\u0639 \u062a\u0627\u0631\u064a\u062e", - "Date is repeated": "\u0648\u064a\u062a\u0643\u0631\u0631 \u0627\u0644\u062a\u0627\u0631\u064a\u062e" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/es-doc.json b/hr/doctype/holiday_block_list/locale/es-doc.json deleted file mode 100644 index 19527dfe70..0000000000 --- a/hr/doctype/holiday_block_list/locale/es-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "Permitir que los usuarios", - "Allow the following users to make Leave Applications for block days.": "Permitir a los usuarios realizar las siguientes aplicaciones dejan para los d\u00edas de bloque.", - "Applies to Company": "Corresponde a la Empresa", - "Block Days": "D\u00edas de bloque", - "Block Holidays on important days.": "Bloque Vacaciones en d\u00edas importantes.", - "Company": "Empresa", - "HR": "HR", - "Holiday Block List": "Holiday lista de bloqueo", - "Holiday Block List Allowed": "Holiday Lista de bloqueo animales", - "Holiday Block List Dates": "Las fechas de vacaciones de listas de bloqueo", - "Holiday Block List Name": "Bloque de vacaciones Lista de Nombres", - "If not checked, the list will have to be added to each Department where it has to be applied.": "Si no est\u00e1 activada, la lista tendr\u00e1 que ser a\u00f1adido a cada Departamento donde se ha de aplicar.", - "Stop users from making Leave Applications on following days.": "Deje que los usuarios realicen aplicaciones dejan en los d\u00edas siguientes.", - "Year": "A\u00f1o" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/es-py.json b/hr/doctype/holiday_block_list/locale/es-py.json deleted file mode 100644 index 4c5772b709..0000000000 --- a/hr/doctype/holiday_block_list/locale/es-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "Bloque Fecha", - "Date is repeated": "La fecha se repite" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/fr-doc.json b/hr/doctype/holiday_block_list/locale/fr-doc.json deleted file mode 100644 index e01bf44e68..0000000000 --- a/hr/doctype/holiday_block_list/locale/fr-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "Autoriser les utilisateurs", - "Allow the following users to make Leave Applications for block days.": "Autoriser les utilisateurs suivants pour faire demandes d'autorisation pour les jours de bloc.", - "Applies to Company": "S'applique \u00e0 l'entreprise", - "Block Days": "Bloquer les jours", - "Block Holidays on important days.": "Bloquer les jours f\u00e9ri\u00e9s importants.", - "Company": "Entreprise", - "HR": "RH", - "Holiday Block List": "Block List vacances", - "Holiday Block List Allowed": "Block List vacances accept\u00e9s", - "Holiday Block List Dates": "Dates de vacances de listes rouges d'", - "Holiday Block List Name": "Nom de la liste de vacances Bloquer", - "If not checked, the list will have to be added to each Department where it has to be applied.": "Si ce n'est pas coch\u00e9e, la liste devra \u00eatre ajout\u00e9 \u00e0 chaque d\u00e9partement o\u00f9 il doit \u00eatre appliqu\u00e9.", - "Stop users from making Leave Applications on following days.": "Emp\u00eacher les utilisateurs de faire des demandes d'autorisation, les jours suivants.", - "Year": "Ann\u00e9e" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/fr-py.json b/hr/doctype/holiday_block_list/locale/fr-py.json deleted file mode 100644 index a1f5dd380b..0000000000 --- a/hr/doctype/holiday_block_list/locale/fr-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "Date de bloquer", - "Date is repeated": "La date est r\u00e9p\u00e9t\u00e9e" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/hi-doc.json b/hr/doctype/holiday_block_list/locale/hi-doc.json deleted file mode 100644 index fa7fc5a412..0000000000 --- a/hr/doctype/holiday_block_list/locale/hi-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "\u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902", - "Allow the following users to make Leave Applications for block days.": "\u0928\u093f\u092e\u094d\u0928 \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u092c\u094d\u0932\u0949\u0915 \u0926\u093f\u0928\u094b\u0902 \u0915\u0947 \u0932\u093f\u090f \u091b\u0941\u091f\u094d\u091f\u0940 \u0905\u0928\u0941\u092a\u094d\u0930\u092f\u094b\u0917 \u092c\u0928\u093e\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902.", - "Applies to Company": "\u0915\u0902\u092a\u0928\u0940 \u0915\u0947 \u0932\u093f\u090f \u0932\u093e\u0917\u0942 \u0939\u094b\u0924\u093e \u0939\u0948", - "Block Days": "\u092c\u094d\u0932\u0949\u0915 \u0926\u093f\u0928", - "Block Holidays on important days.": "\u092e\u0939\u0924\u094d\u0935\u092a\u0942\u0930\u094d\u0923 \u0926\u093f\u0928 \u092a\u0930 \u091b\u0941\u091f\u094d\u091f\u093f\u092f\u093e\u0901 \u092e\u0948.", - "Company": "\u0915\u0902\u092a\u0928\u0940", - "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", - "Holiday Block List": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940", - "Holiday Block List Allowed": "\u0905\u0935\u0915\u093e\u0936 \u0938\u0942\u091a\u0940 \u092c\u094d\u0932\u0949\u0915 \u0930\u0916 \u0938\u0915\u0924\u0947 \u0939\u0948", - "Holiday Block List Dates": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0924\u093f\u0925\u093f\u092f\u093e\u0902", - "Holiday Block List Name": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u092e\u0947\u0902 \u0928\u093e\u092e", - "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0905\u0917\u0930 \u091c\u093e\u0901\u091a \u0928\u0939\u0940\u0902 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0939\u0948, \u0907\u0938 \u0938\u0942\u091a\u0940 \u0915\u0947 \u0932\u093f\u090f \u092a\u094d\u0930\u0924\u094d\u092f\u0947\u0915 \u0935\u093f\u092d\u093e\u0917 \u0939\u0948 \u091c\u0939\u093e\u0902 \u0907\u0938\u0947 \u0932\u093e\u0917\u0942 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0939\u0948 \u0915\u0947 \u0932\u093f\u090f \u091c\u094b\u0921\u093c\u093e \u091c\u093e \u0939\u094b\u0917\u093e.", - "Stop users from making Leave Applications on following days.": "\u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 \u0926\u093f\u0928 \u092a\u0930 \u091b\u0941\u091f\u094d\u091f\u0940 \u0905\u0928\u0941\u092a\u094d\u0930\u092f\u094b\u0917 \u092c\u0928\u093e\u0928\u0947 \u0938\u0947 \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u092c\u0902\u0926 \u0915\u0930\u094b.", - "Year": "\u0935\u0930\u094d\u0937" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/hi-py.json b/hr/doctype/holiday_block_list/locale/hi-py.json deleted file mode 100644 index ca53d8f5cf..0000000000 --- a/hr/doctype/holiday_block_list/locale/hi-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "\u0924\u093f\u0925\u093f \u092c\u094d\u0932\u0949\u0915", - "Date is repeated": "\u0924\u093f\u0925\u093f \u0926\u094b\u0939\u0930\u093e\u092f\u093e \u0939\u0948" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/hr-doc.json b/hr/doctype/holiday_block_list/locale/hr-doc.json deleted file mode 100644 index b872486c30..0000000000 --- a/hr/doctype/holiday_block_list/locale/hr-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "Omogu\u0107iti korisnicima", - "Allow the following users to make Leave Applications for block days.": "Dopusti sljede\u0107i korisnicima da ostavite Prijave za blok dana.", - "Applies to Company": "Odnosi se na Dru\u0161tvo", - "Block Days": "Blok Dani", - "Block Holidays on important days.": "Blok Odmor o va\u017enim dana.", - "Company": "Dru\u0161tvo", - "HR": "HR", - "Holiday Block List": "Turisti\u010dka Blok Popis", - "Holiday Block List Allowed": "Turisti\u010dka Blok Popis dopu\u0161tenih", - "Holiday Block List Dates": "Holiday Block List datumi", - "Holiday Block List Name": "Turisti\u010dka Blok Popis Ime", - "If not checked, the list will have to be added to each Department where it has to be applied.": "Ako nije ozna\u010deno, popis \u0107e biti dodan u svakom odjela gdje se mora primjenjivati.", - "Stop users from making Leave Applications on following days.": "Prestani korisnike od izrade ostaviti aplikacija na sljede\u0107im danima.", - "Year": "Godina" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/hr-py.json b/hr/doctype/holiday_block_list/locale/hr-py.json deleted file mode 100644 index ba06d74dad..0000000000 --- a/hr/doctype/holiday_block_list/locale/hr-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "Blok Datum", - "Date is repeated": "Datum se ponavlja" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/nl-doc.json b/hr/doctype/holiday_block_list/locale/nl-doc.json deleted file mode 100644 index e74a9ce6d6..0000000000 --- a/hr/doctype/holiday_block_list/locale/nl-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "Gebruikers toestaan", - "Allow the following users to make Leave Applications for block days.": "Laat de volgende gebruikers te vertrekken Toepassingen maken voor blok dagen.", - "Applies to Company": "Geldt voor Bedrijf", - "Block Days": "Blokkeren Dagen", - "Block Holidays on important days.": "Blok Vakantie op belangrijke dagen.", - "Company": "Vennootschap", - "HR": "HR", - "Holiday Block List": "Holiday Block List", - "Holiday Block List Allowed": "Holiday toegestaan \u200b\u200bBlock List", - "Holiday Block List Dates": "Holiday Block List Data", - "Holiday Block List Name": "Holiday Block List Name", - "If not checked, the list will have to be added to each Department where it has to be applied.": "Indien niet gecontroleerd, wordt de lijst worden toegevoegd aan elk Department waar het moet worden toegepast.", - "Stop users from making Leave Applications on following days.": "Stop gebruikers van het maken van verlofaanvragen op de volgende dagen.", - "Year": "Jaar" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/nl-py.json b/hr/doctype/holiday_block_list/locale/nl-py.json deleted file mode 100644 index e89506edce..0000000000 --- a/hr/doctype/holiday_block_list/locale/nl-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "Blokkeren Datum", - "Date is repeated": "Datum wordt herhaald" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/pt-doc.json b/hr/doctype/holiday_block_list/locale/pt-doc.json deleted file mode 100644 index ed5ecfa7b6..0000000000 --- a/hr/doctype/holiday_block_list/locale/pt-doc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Allow Users": "Permitir que os usu\u00e1rios", - "Allow the following users to make Leave Applications for block days.": "Permitir que os usu\u00e1rios a seguir para fazer aplica\u00e7\u00f5es deixam para os dias de bloco.", - "Applies to Company": "Aplica-se a Empresa", - "Block Days": "Dias bloco", - "Block Holidays on important days.": "Bloquear feriados em dias importantes.", - "Company": "Companhia", - "HR": "HR", - "Holiday Block List": "Lista de Bloqueios de f\u00e9rias", - "Holiday Block List Allowed": "Lista de feriado Bloco admitidos", - "Holiday Block List Dates": "Datas de f\u00e9rias Lista de Bloqueios", - "Holiday Block List Name": "Nome de f\u00e9rias Lista de Bloqueios", - "If not checked, the list will have to be added to each Department where it has to be applied.": "Se n\u00e3o for controlada, a lista dever\u00e1 ser adicionado a cada departamento onde tem de ser aplicado.", - "Stop users from making Leave Applications on following days.": "Pare de usu\u00e1rios de fazer aplica\u00e7\u00f5es deixam nos dias seguintes.", - "Year": "Ano" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/locale/pt-py.json b/hr/doctype/holiday_block_list/locale/pt-py.json deleted file mode 100644 index d2b6e696c3..0000000000 --- a/hr/doctype/holiday_block_list/locale/pt-py.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "Block Date": "Bloquear Data", - "Date is repeated": "Data \u00e9 repetido" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list/test_holiday_block_list.py b/hr/doctype/holiday_block_list/test_holiday_block_list.py deleted file mode 100644 index e9f3b78472..0000000000 --- a/hr/doctype/holiday_block_list/test_holiday_block_list.py +++ /dev/null @@ -1,20 +0,0 @@ -test_records = [[{ - "doctype":"Holiday Block List", - "holiday_block_list_name": "_Test Holiday Block List", - "year": "_Test Fiscal Year 2013", - "company": "_Test Company" - }, { - "doctype": "Holiday Block List Date", - "parent": "_Test Holiday Block List", - "parenttype": "Holiday Block List", - "parentfield": "holiday_block_list_dates", - "block_date": "2013-01-02", - "reason": "First work day" - }, { - "doctype": "Holiday Block List Allow", - "parent": "_Test Holiday Block List", - "parenttype": "Holiday Block List", - "parentfield": "holiday_block_list_allowed", - "allow_user": "test1@example.com", - } - ]] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json b/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json deleted file mode 100644 index ac1046f409..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - "HR", - "Allow User", - "Holiday Block List Allow" -] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/ar-doc.json b/hr/doctype/holiday_block_list_allow/locale/ar-doc.json deleted file mode 100644 index 2505f56e6e..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/ar-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "\u062a\u0633\u0645\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645", - "HR": "HR", - "Holiday Block List Allow": "\u0639\u0637\u0644\u0629 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062d\u0638\u0631 \u0627\u0644\u0633\u0645\u0627\u062d" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/es-doc.json b/hr/doctype/holiday_block_list_allow/locale/es-doc.json deleted file mode 100644 index 1880afb050..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/es-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "Permitir al usuario", - "HR": "HR", - "Holiday Block List Allow": "Lista Casas Bloquear Permitir" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/fr-doc.json b/hr/doctype/holiday_block_list_allow/locale/fr-doc.json deleted file mode 100644 index 9eb4b70dbd..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/fr-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "Permettre \u00e0 l'utilisateur", - "HR": "RH", - "Holiday Block List Allow": "Block List vacances Permettez-" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/hi-doc.json b/hr/doctype/holiday_block_list_allow/locale/hi-doc.json deleted file mode 100644 index 98457e9a12..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/hi-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "\u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f", - "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", - "Holiday Block List Allow": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/hr-doc.json b/hr/doctype/holiday_block_list_allow/locale/hr-doc.json deleted file mode 100644 index f238dfa6b9..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/hr-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "Dopusti korisnika", - "HR": "HR", - "Holiday Block List Allow": "Turisti\u010dka Popis Blok Dopustite" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/nl-doc.json b/hr/doctype/holiday_block_list_allow/locale/nl-doc.json deleted file mode 100644 index 74f6452be5..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/nl-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "Door gebruiker toestaan", - "HR": "HR", - "Holiday Block List Allow": "Holiday Block List Laat" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/locale/pt-doc.json b/hr/doctype/holiday_block_list_allow/locale/pt-doc.json deleted file mode 100644 index 9c1c1fca7e..0000000000 --- a/hr/doctype/holiday_block_list_allow/locale/pt-doc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "Allow User": "Permitir que o usu\u00e1rio", - "HR": "HR", - "Holiday Block List Allow": "Lista de Bloqueios de f\u00e9rias Permitir" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/_messages_doc.json b/hr/doctype/holiday_block_list_date/locale/_messages_doc.json deleted file mode 100644 index 4a98b98159..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/_messages_doc.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - "HR", - "Reason", - "Holiday Block List Date", - "Block Date" -] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/ar-doc.json b/hr/doctype/holiday_block_list_date/locale/ar-doc.json deleted file mode 100644 index 4e642ba556..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/ar-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "\u0645\u0646\u0639 \u062a\u0627\u0631\u064a\u062e", - "HR": "HR", - "Holiday Block List Date": "\u062a\u0627\u0631\u064a\u062e \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", - "Reason": "\u0633\u0628\u0628" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/es-doc.json b/hr/doctype/holiday_block_list_date/locale/es-doc.json deleted file mode 100644 index d773187250..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/es-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "Bloque Fecha", - "HR": "HR", - "Holiday Block List Date": "Bloque de vacaciones Lista Fecha", - "Reason": "Raz\u00f3n" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/fr-doc.json b/hr/doctype/holiday_block_list_date/locale/fr-doc.json deleted file mode 100644 index 2d4bba7138..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/fr-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "Date de bloquer", - "HR": "RH", - "Holiday Block List Date": "Liste Date vacances Bloquer", - "Reason": "Raison" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/hi-doc.json b/hr/doctype/holiday_block_list_date/locale/hi-doc.json deleted file mode 100644 index 44a9f9ea87..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/hi-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "\u0924\u093f\u0925\u093f \u092c\u094d\u0932\u0949\u0915", - "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", - "Holiday Block List Date": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0924\u093f\u0925\u093f", - "Reason": "\u0915\u093e\u0930\u0923" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/hr-doc.json b/hr/doctype/holiday_block_list_date/locale/hr-doc.json deleted file mode 100644 index fa91d53b44..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/hr-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "Blok Datum", - "HR": "HR", - "Holiday Block List Date": "Turisti\u010dka Blok Popis Datum", - "Reason": "Razlog" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/nl-doc.json b/hr/doctype/holiday_block_list_date/locale/nl-doc.json deleted file mode 100644 index deaea5ef1b..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/nl-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "Blokkeren Datum", - "HR": "HR", - "Holiday Block List Date": "Holiday Block List Datum", - "Reason": "Reden" -} \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_date/locale/pt-doc.json b/hr/doctype/holiday_block_list_date/locale/pt-doc.json deleted file mode 100644 index 1b95487755..0000000000 --- a/hr/doctype/holiday_block_list_date/locale/pt-doc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Block Date": "Bloquear Data", - "HR": "HR", - "Holiday Block List Date": "Data feriado Lista de Bloqueios", - "Reason": "Raz\u00e3o" -} \ No newline at end of file diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py index bc685dfd55..2e26eb34c9 100755 --- a/hr/doctype/leave_application/leave_application.py +++ b/hr/doctype/leave_application/leave_application.py @@ -59,11 +59,11 @@ class DocType: # per department department = webnotes.conn.get_value("Employee", self.doc.employee, "department") if department: - block_list = webnotes.conn.get_value("Department", department, "holiday_block_list") + block_list = webnotes.conn.get_value("Department", department, "leave_block_list") add_block_list(block_list) # global - for block_list in webnotes.conn.sql_list("""select name from `tabHoliday Block List` + for block_list in webnotes.conn.sql_list("""select name from `tabLeave Block List` where ifnull(applies_to_all_departments,0)=1 and company=%s""", self.doc.company): add_block_list(block_list) @@ -73,7 +73,7 @@ class DocType: from_date = getdate(self.doc.from_date) to_date = getdate(self.doc.to_date) for d in webnotes.conn.sql("""select block_date, reason from - `tabHoliday Block List Date` where parent=%s""", block_list, as_dict=1): + `tabLeave Block List Date` where parent=%s""", block_list, as_dict=1): block_date = getdate(d.block_date) if block_date > from_date and block_date < to_date: webnotes.msgprint(_("You cannot apply for a leave on the following date because it is blocked") @@ -84,7 +84,7 @@ class DocType: def is_user_in_allow_list(self, block_list): return webnotes.session.user in webnotes.conn.sql_list("""select allow_user - from `tabHoliday Block List Allow` where parent=%s""", block_list) + from `tabLeave Block List Allow` where parent=%s""", block_list) def get_holidays(self): tot_hol = webnotes.conn.sql("""select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py index cd74d01399..19e2935e77 100644 --- a/hr/doctype/leave_application/test_leave_application.py +++ b/hr/doctype/leave_application/test_leave_application.py @@ -30,7 +30,7 @@ class TestLeaveApplication(unittest.TestCase): def test_global_block_list(self): application = self.get_application(test_records[3]) application.doc.leave_approver = "test@example.com" - webnotes.conn.set_value("Holiday Block List", "_Test Holiday Block List", + webnotes.conn.set_value("Leave Block List", "_Test Leave Block List", "applies_to_all_departments", 1) webnotes.conn.set_value("Employee", "_T-Employee-0002", "department", "_Test Department") diff --git a/hr/doctype/holiday_block_list/__init__.py b/hr/doctype/leave_block_list/__init__.py similarity index 100% rename from hr/doctype/holiday_block_list/__init__.py rename to hr/doctype/leave_block_list/__init__.py diff --git a/hr/doctype/holiday_block_list/holiday_block_list.py b/hr/doctype/leave_block_list/leave_block_list.py similarity index 89% rename from hr/doctype/holiday_block_list/holiday_block_list.py rename to hr/doctype/leave_block_list/leave_block_list.py index 776e4a9940..16d73205bd 100644 --- a/hr/doctype/holiday_block_list/holiday_block_list.py +++ b/hr/doctype/leave_block_list/leave_block_list.py @@ -11,7 +11,7 @@ class DocType: def validate(self): dates = [] - for d in self.doclist.get({"doctype":"Holiday Block List Date"}): + for d in self.doclist.get({"doctype":"Leave Block List Date"}): # validate fiscal year validate_fiscal_year(d.block_date, self.doc.year, _("Block Date")) @@ -19,4 +19,3 @@ class DocType: if d.block_date in dates: webnotes.msgprint(_("Date is repeated") + ":" + d.block_date, raise_exception=1) dates.append(d.block_date) - diff --git a/hr/doctype/holiday_block_list/holiday_block_list.txt b/hr/doctype/leave_block_list/leave_block_list.txt similarity index 76% rename from hr/doctype/holiday_block_list/holiday_block_list.txt rename to hr/doctype/leave_block_list/leave_block_list.txt index d034d8fdbf..b48416c3df 100644 --- a/hr/doctype/holiday_block_list/holiday_block_list.txt +++ b/hr/doctype/leave_block_list/leave_block_list.txt @@ -1,13 +1,13 @@ [ { - "creation": "2013-02-04 15:31:29", + "creation": "2013-02-08 15:13:29", "docstatus": 0, - "modified": "2013-02-08 11:36:20", + "modified": "2013-02-14 17:15:32", "modified_by": "Administrator", "owner": "Administrator" }, { - "autoname": "field:holiday_block_list_name", + "autoname": "field:leave_block_list_name", "description": "Block Holidays on important days.", "doctype": "DocType", "document_type": "Master", @@ -17,7 +17,7 @@ { "doctype": "DocField", "name": "__common__", - "parent": "Holiday Block List", + "parent": "Leave Block List", "parentfield": "fields", "parenttype": "DocType", "permlevel": 0 @@ -26,7 +26,7 @@ "create": 1, "doctype": "DocPerm", "name": "__common__", - "parent": "Holiday Block List", + "parent": "Leave Block List", "parentfield": "permissions", "parenttype": "DocType", "permlevel": 0, @@ -36,13 +36,13 @@ }, { "doctype": "DocType", - "name": "Holiday Block List" + "name": "Leave Block List" }, { "doctype": "DocField", - "fieldname": "holiday_block_list_name", + "fieldname": "leave_block_list_name", "fieldtype": "Data", - "label": "Holiday Block List Name", + "label": "Leave Block List Name", "reqd": 1 }, { @@ -77,10 +77,10 @@ }, { "doctype": "DocField", - "fieldname": "holiday_block_list_dates", + "fieldname": "leave_block_list_dates", "fieldtype": "Table", - "label": "Holiday Block List Dates", - "options": "Holiday Block List Date" + "label": "Leave Block List Dates", + "options": "Leave Block List Date" }, { "description": "Allow the following users to make Leave Applications for block days.", @@ -91,10 +91,10 @@ }, { "doctype": "DocField", - "fieldname": "holiday_block_list_allowed", + "fieldname": "leave_block_list_allowed", "fieldtype": "Table", - "label": "Holiday Block List Allowed", - "options": "Holiday Block List Allow" + "label": "Leave Block List Allowed", + "options": "Leave Block List Allow" }, { "doctype": "DocPerm" diff --git a/hr/doctype/leave_block_list/test_leave_block_list.py b/hr/doctype/leave_block_list/test_leave_block_list.py new file mode 100644 index 0000000000..701787232b --- /dev/null +++ b/hr/doctype/leave_block_list/test_leave_block_list.py @@ -0,0 +1,20 @@ +test_records = [[{ + "doctype":"Leave Block List", + "leave_block_list_name": "_Test Leave Block List", + "year": "_Test Fiscal Year 2013", + "company": "_Test Company" + }, { + "doctype": "Leave Block List Date", + "parent": "_Test Leave Block List", + "parenttype": "Leave Block List", + "parentfield": "leave_block_list_dates", + "block_date": "2013-01-02", + "reason": "First work day" + }, { + "doctype": "Leave Block List Allow", + "parent": "_Test Leave Block List", + "parenttype": "Leave Block List", + "parentfield": "leave_block_list_allowed", + "allow_user": "test1@example.com", + } + ]] \ No newline at end of file diff --git a/hr/doctype/holiday_block_list_allow/__init__.py b/hr/doctype/leave_block_list_allow/__init__.py similarity index 100% rename from hr/doctype/holiday_block_list_allow/__init__.py rename to hr/doctype/leave_block_list_allow/__init__.py diff --git a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.py b/hr/doctype/leave_block_list_allow/leave_block_list_allow.py similarity index 100% rename from hr/doctype/holiday_block_list_allow/holiday_block_list_allow.py rename to hr/doctype/leave_block_list_allow/leave_block_list_allow.py diff --git a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt similarity index 76% rename from hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt rename to hr/doctype/leave_block_list_allow/leave_block_list_allow.txt index bdbd2a0186..8709ff74c1 100644 --- a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt +++ b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-06 14:31:03", + "creation": "2013-02-06 17:43:44", "docstatus": 0, - "modified": "2013-02-06 14:31:03", + "modified": "2013-02-14 17:15:45", "modified_by": "Administrator", "owner": "Administrator" }, @@ -19,7 +19,7 @@ "label": "Allow User", "name": "__common__", "options": "Profile", - "parent": "Holiday Block List Allow", + "parent": "Leave Block List Allow", "parentfield": "fields", "parenttype": "DocType", "permlevel": 0, @@ -27,7 +27,7 @@ }, { "doctype": "DocType", - "name": "Holiday Block List Allow" + "name": "Leave Block List Allow" }, { "doctype": "DocField" diff --git a/hr/doctype/holiday_block_list_date/__init__.py b/hr/doctype/leave_block_list_date/__init__.py similarity index 100% rename from hr/doctype/holiday_block_list_date/__init__.py rename to hr/doctype/leave_block_list_date/__init__.py diff --git a/hr/doctype/holiday_block_list_date/holiday_block_list_date.py b/hr/doctype/leave_block_list_date/leave_block_list_date.py similarity index 100% rename from hr/doctype/holiday_block_list_date/holiday_block_list_date.py rename to hr/doctype/leave_block_list_date/leave_block_list_date.py diff --git a/hr/doctype/holiday_block_list_date/holiday_block_list_date.txt b/hr/doctype/leave_block_list_date/leave_block_list_date.txt similarity index 79% rename from hr/doctype/holiday_block_list_date/holiday_block_list_date.txt rename to hr/doctype/leave_block_list_date/leave_block_list_date.txt index 69375fe45f..bf543ae583 100644 --- a/hr/doctype/holiday_block_list_date/holiday_block_list_date.txt +++ b/hr/doctype/leave_block_list_date/leave_block_list_date.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-04 15:33:14", + "creation": "2013-02-05 11:48:25", "docstatus": 0, - "modified": "2013-02-04 15:36:10", + "modified": "2013-02-14 17:15:52", "modified_by": "Administrator", "owner": "Administrator" }, @@ -15,7 +15,7 @@ { "doctype": "DocField", "name": "__common__", - "parent": "Holiday Block List Date", + "parent": "Leave Block List Date", "parentfield": "fields", "parenttype": "DocType", "permlevel": 0, @@ -23,7 +23,7 @@ }, { "doctype": "DocType", - "name": "Holiday Block List Date" + "name": "Leave Block List Date" }, { "doctype": "DocField", diff --git a/hr/page/hr_home/hr_home.js b/hr/page/hr_home/hr_home.js index 8c52e0ef62..465835f37f 100644 --- a/hr/page/hr_home/hr_home.js +++ b/hr/page/hr_home/hr_home.js @@ -81,9 +81,9 @@ wn.module_page["HR"] = [ doctype: "Holiday List" }, { - "label":wn._("Holiday Block List"), + "label":wn._("Leave Block List"), "description":wn._("Block leave applications by department."), - doctype: "Holiday Block List" + doctype: "Leave Block List" }, ] }, diff --git a/patches/february_2013/p01_event.py b/patches/february_2013/p01_event.py new file mode 100644 index 0000000000..e6b04d3cc6 --- /dev/null +++ b/patches/february_2013/p01_event.py @@ -0,0 +1,14 @@ +import webnotes + +def execute(): + webnotes.reload_doc("core", "doctype", "event") + + webnotes.conn.sql("""update tabEvent set subject=description""") + + webnotes.conn.sql("""update tabEvent set description = concat(description, "\n", notes) + where ifnull(notes,"") != "" """) + + webnotes.conn.sql("""update tabEvent set starts_on = timestamp(event_date, event_hour)""") + + webnotes.conn.sql("""update tabEvent set ends_on = timestampadd(hour, 1, starts_on)""") + diff --git a/startup/event_handlers.py b/startup/event_handlers.py index 2a74eeb58d..76c842d384 100644 --- a/startup/event_handlers.py +++ b/startup/event_handlers.py @@ -55,8 +55,6 @@ def boot_session(bootinfo): bootinfo['letter_heads'] = get_letter_heads() import webnotes.model.doctype - bootinfo['docs'] += webnotes.model.doctype.get('Event') - bootinfo['docs'] += webnotes.model.doctype.get('Search Criteria') bootinfo['notification_settings'] = webnotes.doc("Notification Control", "Notification Control").get_values() diff --git a/utilities/page/calendar/calendar.css b/utilities/page/calendar/calendar.css deleted file mode 100644 index dd1b6de2fd..0000000000 --- a/utilities/page/calendar/calendar.css +++ /dev/null @@ -1,165 +0,0 @@ -/**** CALENDAR ****/ - -.cal_event { - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - margin-bottom: 3px; -} - -div.cal_body { - margin: 16px; - background-color: #DDD; - position: relative; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - padding: 16px; - -moz-box-shadow: 1px 1px 8px #555; - -webkit-box-shadow: 1px 1px 8px #555; - box-shadow: 1px 1px 8px #555; -} - -div.cal_body h4 { - text-align: center; -} - -div.cal_head { - margin: 16px; - margin-bottom: 0px; -} -div.cal_head div { - font-size: 18px; - color: #666; - padding-top: 8px; -} - -div.cal_toolbar { - width: 80%; -} - -div.cal_toolbar .btn { - text-align: center; - margin: 0px; - margin-left: -1px; -} - -div.cal_view_body { -} - -div.cal_view_body_plain { - margin: 16px; -} - -div.cal_month_head { - margin: 8px 0px 8px 0px; - height: 30px; -} - -div.cal_month_head .btn { - float: right; -} - -span.cal_view_title { - display: inline-block; - font-size: 20px; -} - -div.cal_month_body { -} - -.cal_month_headtable { - table-layout:fixed; - width: 100%; -} - -.cal_month_name { - width: 100%; - color: #888; - font-size: 14px; - font-weight: bold; - text-align: center; -} - -.cal_month_headtable tr td{ - font-size: 12px; - font-weight: bold; - text-align: center; - padding: 4px; -} - -table.cal_month_table { - border-collapse: collapse; - table-layout:fixed; - width: 100%; -} - -table.cal_month_table td { - width: 14.29%; - height: 20%; - /*overflow:hidden;*/ - padding:0px; -} - -div.cal_month_date { - width:100%; - font-size: 10px; - /*background-color: #EEF;*/ -} - -div.cal_month_date_holiday { - /*background-color: #FFF;*/ -} - -div.cal_month_unit { - width:100%; - min-height: 100px; - overflow:hidden; - cursor:pointer; - /*background-color:#FFF;*/ -} - -div.cal_vu_disabled { - background-color:#FFF; - cursor:default; -} - -table.cal_day_table { - border-collapse: collapse; - width: 100%; -} - -table.cal_day_table td { -} - -div.cal_day_body { - width: 100%; - overflow-x: hidden; - border-top: 1px solid #AAA; -} - -div.cal_day_unit{ - width:100%; - cursor:pointer; -} - -table.cal_week_table { - border-collapse: collapse; - table-layout: fixed; - width: 100%; -} - -table.cal_week_table td { - width: 12.5%; -} - -div.cal_week_body { - width: 100%; - overflow-x: hidden; - border-top: 1px solid #888; -} - -div.cal_week_unit{ - width: 100%; - cursor:pointer; -} diff --git a/utilities/page/calendar/calendar.html b/utilities/page/calendar/calendar.html deleted file mode 100644 index 0f8cc0ea47..0000000000 --- a/utilities/page/calendar/calendar.html +++ /dev/null @@ -1,29 +0,0 @@ -
- × -
- - - - - -
-
- - - -
-
\ No newline at end of file diff --git a/utilities/page/calendar/calendar.js b/utilities/page/calendar/calendar.js index 5e59f1f4c8..cac5ec8265 100644 --- a/utilities/page/calendar/calendar.js +++ b/utilities/page/calendar/calendar.js @@ -21,690 +21,86 @@ // pscript.onload_calendar = function(wrapper) { - if(!erpnext.calendar) { - erpnext.calendar = new Calendar(); - erpnext.calendar.init(wrapper); - - var me = this; - $(document).bind('rename', function(event, dt, old_name, new_name) { - erpnext.calendar.rename_notify(dt, old_name, new_name) - }); - } -} - -///// CALENDAR - -Calendar=function() { - this.views=[]; - this.events = {}; - this.events_by_name = {}; - this.weekdays = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); -} - -Calendar.prototype.init=function (parent) { - - this.wrapper = parent; - this.body = $('.cal_body').get(0); - - //this.make_head_buttons(); - //this.make_header(); - this.view_title = $('.cal_view_title').get(0); - - this.todays_date = new Date(); - this.selected_date = this.todays_date; - this.selected_hour = 8; - - // Create views - this.views['Month'] = new Calendar.MonthView(this); - this.views['Week'] = new Calendar.WeekView(this); - this.views['Day'] = new Calendar.DayView(this); - - // Month view as initial - this.cur_view = this.views['Month']; - this.views['Month'].show(); + wn.ui.make_app_page({ + parent: wrapper, + single_column: true, + title: 'Calendar' + }); + wn.require('lib/js/lib/fullcalendar/fullcalendar.css'); + wn.require('lib/js/lib/fullcalendar/fullcalendar.js'); } -Calendar.prototype.rename_notify = function(dt, old_name, new_name) { - // calendar - if(dt = 'Event'){ - if(this.events_by_name[old_name]) { - delete this.events_by_name[old_name]; - } - } -} - -//------------------------------------------------------ - -Calendar.prototype.show_event = function(ev, cal_ev) { - var me = this; - if(!this.event_dialog) { - var d = new Dialog(400, 400, 'Calendar Event'); - d.make_body([ - ['HTML','Heading'] - ,['Text','Description'] - ,['HTML', 'Ref Link'] - ,['Check', 'Public Event'] - ,['Check', 'Cancelled Event'] - ,['HTML', 'Event Link'] - ,['Button', 'Save'] - ]) - - // show the event when the dialog opens - d.onshow = function() { - // heading - var c = me.selected_date; - - this.widgets['Heading'].innerHTML = - '
' - + erpnext.calendar.weekdays[c.getDay()] + ', ' + c.getDate() + ' ' + month_list_full[c.getMonth()] + ' ' + c.getFullYear() - + ' - '+this.ev.event_hour+'
'; - - // set - this.widgets['Description'].value = cstr(this.ev.description); - - this.widgets['Public Event'].checked = false; - this.widgets['Cancelled Event'].checked = false; - - if(this.ev.event_type=='Public') - this.widgets['Public Event'].checked = true; - - this.widgets['Event Link'].innerHTML = ''; - this.widgets['Ref Link'].innerHTML = ''; - - if(this.ev.ref_type) { - $(repl('\ - \ - \ -
Reference:%(ref_type)s: %(ref_name)s
', this.ev)) - .appendTo(this.widgets['Ref Link']) - } - - $(repl('More Options', this.ev)) - .appendTo(this.widgets['Event Link']) - } - - // event save - d.widgets['Save'].onclick = function() { - var d = me.event_dialog; - - // save values - d.ev.description = d.widgets['Description'].value; - if(d.widgets['Cancelled Event'].checked) - d.ev.event_type='Cancel'; - else if(d.widgets['Public Event'].checked) - d.ev.event_type='Public'; - - me.event_dialog.hide(); - - // if new event - me.save_event(d.ev); - } - this.event_dialog = d; - } - this.event_dialog.ev = ev; - this.event_dialog.cal_ev = cal_ev ? cal_ev : null; - this.event_dialog.show(); - -} - -Calendar.prototype.save_event = function(doc) { - var me = this; - var doclist = new wn.model.DocList("Event", doc.name); - doclist.save("Save", function(r) { - var doc = locals['Event'][r.docname]; - var cal = erpnext.calendar; - cal.cur_view.refresh(); - - // if cancelled, hide - if(doc.event_type=='Cancel') { - $(cal.events_by_name[doc.name].body).toggle(false); - } - }) -} - -//------------------------------------------------------ - -Calendar.prototype.add_event = function() { - - var ev = wn.model.make_new_doc_and_get_name('Event'); - ev = locals['Event'][ev]; - - ev.event_date = dateutil.obj_to_str(this.selected_date); - ev.event_hour = this.selected_hour+':00:00'; - ev.event_type = 'Private'; - - this.show_event(ev); -} -//------------------------------------------------------ - -Calendar.prototype.get_month_events = function(call_back) { - // ret fn - var me = this; - var f = function(r, rt) { - if(me.cur_view) me.cur_view.refresh(); - if(call_back)call_back(); - } - - //load - var y=this.selected_date.getFullYear(); var m = this.selected_date.getMonth(); - if(!this.events[y] || !this.events[y][m]) { - $c('webnotes.widgets.event.load_month_events', args = { - 'month': m + 1, - 'year' : y}, - f); - } -} -//------------------------------------------------------ - -Calendar.prototype.get_daily_event_list=function(day) { - var el = []; - var d = day.getDate(); var m = day.getMonth(); var y = day.getFullYear() - if(this.events[y] && this.events[y][m] && - this.events[y][m][d]) { - var l = this.events[y][m][d] - for(var i in l) { - for(var j in l[i]) el[el.length] = l[i][j]; - } - return el; - } - else return []; -} -//------------------------------------------------------ - -Calendar.prototype.set_event = function(ev) { - // don't duplicate - if(this.events_by_name[ev.name]) { - return this.events_by_name[ev.name]; - } - - var dt = dateutil.str_to_obj(ev.event_date); - var m = dt.getMonth(); - var d = dt.getDate(); - var y = dt.getFullYear(); - - if(!this.events[y]) this.events[y] = []; - if(!this.events[y][m]) this.events[y][m] = []; - if(!this.events[y][m][d]) this.events[y][m][d] = []; - if(!this.events[y][m][d][cint(ev.event_hour)]) - this.events[y][m][d][cint(ev.event_hour)] = []; - - var cal_ev = new Calendar.CalEvent(ev, this); - this.events[y][m][d][cint(ev.event_hour)].push(cal_ev); - this.events_by_name[ev.name] = cal_ev; - - return cal_ev; -} - -//------------------------------------------------------ - -Calendar.prototype.clear = function() { - this.events = {}; - this.events_by_name = {}; - locals.Event = {}; -} - -Calendar.prototype.refresh = function(viewtype, clear_events){//Sets the viewtype of the Calendar and Calls the View class based on the viewtype - if(viewtype) - this.viewtype = viewtype; - - if(clear_events) - this.clear(); - - // switch view if reqd - if(this.cur_view.viewtype!=this.viewtype) { - this.cur_view.hide(); - this.cur_view = this.views[this.viewtype]; - this.cur_view.in_home = false; // for home page - this.cur_view.show(); - } - else{ - this.cur_view.get_events(); - this.cur_view.refresh(this); - } -} - -//------------------------------------------------------ - -Calendar.CalEvent= function(doc, cal) { - var me = this; - me.doc = doc; - - this.body = $("
") - .html(doc.description) - .attr("title", doc.description) - .css({"cursor":"pointer"}) - .attr("data-event", doc.name) - .click(function() { - var doc = locals["Event"][$(this).attr("data-event")]; - cal.show_event(doc, me); - }) - - this.show = function(vu) { - me.body - .html(me.doc.description) - .css({"width": ($(vu.body).width()-10)}) - .appendTo(vu.body) - .removeClass("label-success").removeClass("label-info") - .addClass(me.doc.event_type=="Public" ? "label-success" : "label-info") - } -} - - -// ---------- - -Calendar.View =function() { this.daystep = 0; this.monthstep = 0; } -Calendar.View.prototype.init=function(cal) { - this.cal = cal; - this.body = $a(cal.body, 'div', 'cal_view_body'); - this.body.style.display = 'none'; - this.create_table(); -} - - -Calendar.View.prototype.show=function() { - this.body.style.display = 'block'; - this.get_events(); this.refresh(); -} - -Calendar.View.prototype.hide=function() { - this.body.style.display = 'none'; -} - -Calendar.View.prototype.next = function() { - var s = this.cal.selected_date; - this.cal.selected_date = new Date(s.getFullYear(), s.getMonth() + this.monthstep, s.getDate() + this.daystep); - this.get_events(); this.refresh(); -} - -Calendar.View.prototype.prev = function() { - var s = this.cal.selected_date; - this.cal.selected_date = new Date(s.getFullYear(), s.getMonth() - this.monthstep, s.getDate() - this.daystep); - this.get_events(); this.refresh(); -} - -Calendar.View.prototype.get_events = function() { - this.cal.get_month_events(); -} -Calendar.View.prototype.add_unit = function(vu) { - this.viewunits[this.viewunits.length] = vu; -} -Calendar.View.prototype.refresh_units = function() { - // load the events - if(locals['Event']) { - for(var name in locals['Event']) { - this.cal.set_event(locals['Event'][name]); - } - } - - - for(var r in this.table.rows) { - for(var c in this.table.rows[r].cells) { - if(this.table.rows[r].cells[c].viewunit) { - this.table.rows[r].cells[c].viewunit.refresh(); +pscript.update_event = function(event) { + wn.model.remove_from_locals("Event", event.id); + wn.call({ + module: "utilities", + page: "calendar", + method: "update_event", + args: { + "start": wn.datetime.get_datetime_as_string(event.start), + "end": wn.datetime.get_datetime_as_string(event.end), + "name": event.id + }, + callback: function(r) { + if(r.exc) { + show_alert("Unable to update event.") } } - } + }); } -// ................. Month View.......................... -Calendar.MonthView = function(cal) { this.init(cal); this.monthstep = 1; this.rows = 5; this.cells = 7; } -Calendar.MonthView.prototype=new Calendar.View(); -Calendar.MonthView.prototype.create_table = function() { - // create head - this.head_wrapper = $a(this.body, 'div', 'cal_month_head'); - - // create headers - this.headtable = $a(this.head_wrapper, 'table', 'cal_month_headtable'); - var r = this.headtable.insertRow(0); - for(var j=0;j<7;j++) { - var cell = r.insertCell(j); - cell.innerHTML = erpnext.calendar.weekdays[j]; - $w(cell, (100 / 7) + '%'); - } - - this.main = $a(this.body, 'div', 'cal_month_body'); - this.table = $a(this.main, 'table', 'cal_month_table'); - var me = this; - - // create body - for(var i=0;i<5;i++) { - var r = this.table.insertRow(i); - for(var j=0;j<7;j++) { - var cell = r.insertCell(j); - cell.viewunit = new Calendar.MonthViewUnit(cell); - } - } -} - -Calendar.MonthView.prototype.refresh = function() { - var c =this.cal.selected_date; - var me=this; - // fill other days - - var cur_row = 0; - - var cur_month = c.getMonth(); - var cur_year = c.getFullYear(); - - var d = new Date(cur_year, cur_month, 1); - var day = 1 - d.getDay(); - - - // set day headers - var d = new Date(cur_year, cur_month, day); - - this.cal.view_title.innerHTML = month_list_full[cur_month] + ' ' + cur_year; - - for(var i=0;i<6;i++) { - if((i<5) || cur_month==d.getMonth()) { // if this month - for(var j=0;j<7;j++) { - var cell = this.table.rows[cur_row].cells[j]; - - if((i<5) || cur_month==d.getMonth()) { // if this month - cell.viewunit.day = d; - cell.viewunit.hour = 8; - if(cur_month == d.getMonth()) { - cell.viewunit.is_disabled = false; - - if(same_day(this.cal.todays_date, d)) - cell.viewunit.is_today = true; - else - cell.viewunit.is_today = false; - - } else { - cell.viewunit.is_disabled = true; +pscript.onshow_calendar = function(wrapper) { + if(!wrapper.setup_complete) { + $('
').appendTo($(wrapper).find('.layout-main')).fullCalendar({ + header: { + left: 'prev,next today', + center: 'title', + right: 'month,agendaWeek,agendaDay' + }, + editable: true, + events: function(start, end, callback) { + wn.call({ + method: 'utilities.page.calendar.calendar.get_events', + type: "GET", + args: { + start: dateutil.obj_to_str(start), + end: dateutil.obj_to_str(end) + }, + callback: function(r) { + var events = r.message; + $.each(events, function(i, d) { + d.editable = d.owner==user; + d.allDay = false; + }); + callback(events); } - } - // new date - day++; - d = new Date(cur_year, cur_month, day); - } - } - cur_row++; - if(cur_row == 5) {cur_row = 0;} // back to top - } - this.refresh_units(); - -} - // ................. Daily View.......................... -Calendar.DayView=function(cal){ this.init(cal); this.daystep = 1; } -Calendar.DayView.prototype=new Calendar.View(); -Calendar.DayView.prototype.create_table = function() { + }) + }, + dayClick: function(date, allDay, jsEvent, view) { + // if current date, show popup to create a new event + var ev = wn.model.create('Event') + ev.doc.set('start', date); + ev.doc.set('end', new Date(date)); + ev.doc.set('all_day', 1); - // create body - this.main = $a(this.body, 'div', 'cal_day_body'); - this.table = $a(this.main, 'table', 'cal_day_table'); - var me = this; - - for(var i=0;i<24;i++) { - var r = this.table.insertRow(i); - for(var j=0;j<2;j++) { - var cell = r.insertCell(j); - if(j==0) { - cell.innerHTML = i+':00:00'; - $w(cell, '10%'); - } else { - cell.viewunit = new Calendar.DayViewUnit(cell); - cell.viewunit.hour = i; - $w(cell, '90%'); - if((i>=7)&&(i<=20)) { - cell.viewunit.is_daytime = true; - } + }, + eventClick: function(calEvent, jsEvent, view) { + // edit event description or delete + wn.set_route("Form", "Event", calEvent.id); + }, + eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc) { + pscript.update_event(event); + }, + eventResize: function(event, dayDelta, minuteDelta, allDay, revertFunc) { + pscript.update_event(event); } - } - } - } + }); -Calendar.DayView.prototype.refresh = function() { - var c =this.cal.selected_date; - - // fill other days - var me=this; - - this.cal.view_title.innerHTML = erpnext.calendar.weekdays[c.getDay()] + ', ' - + c.getDate() + ' ' + month_list_full[c.getMonth()] + ' ' + c.getFullYear(); - - // headers - var d = c; - - for(var i=0;i<24;i++) { - var cell = this.table.rows[i].cells[1]; - if(same_day(this.cal.todays_date, d)) cell.viewunit.is_today = true; - else cell.viewunit.is_today = false; - cell.viewunit.day = d; - } - this.refresh_units(); -} - -// ................. Weekly View.......................... -Calendar.WeekView=function(cal) { this.init(cal); this.daystep = 7; } -Calendar.WeekView.prototype=new Calendar.View(); -Calendar.WeekView.prototype.create_table = function() { - - // create head - this.head_wrapper = $a(this.body, 'div', 'cal_month_head'); - - // day headers - this.headtable = $a(this.head_wrapper, 'table', 'cal_month_headtable'); - var r = this.headtable.insertRow(0); - for(var j=0;j<8;j++) { - var cell = r.insertCell(j); - } - - // hour header - - // create body - this.main = $a(this.body, 'div', 'cal_week_body'); - this.table = $a(this.main, 'table', 'cal_week_table'); - var me = this; - - for(var i=0;i<24;i++) { - var r = this.table.insertRow(i); - for(var j=0;j<8;j++) { - var cell = r.insertCell(j); - if(j==0) { - cell.innerHTML = i+':00:00'; - $w(cell, '10%'); - } else { - cell.viewunit = new Calendar.WeekViewUnit(cell); - cell.viewunit.hour = i; - if((i>=7)&&(i<=20)) { - cell.viewunit.is_daytime = true; - } - } - } - } -} - -Calendar.WeekView.prototype.refresh = function() { - var c =this.cal.selected_date; - // fill other days - var me=this; - - this.cal.view_title.innerHTML = month_list_full[c.getMonth()] + ' ' + c.getFullYear(); - - // headers - var d = new Date(c.getFullYear(), c.getMonth(), c.getDate() - c.getDay()); - - for (var k=1;k<8;k++) { - this.headtable.rows[0].cells[k].innerHTML = erpnext.calendar.weekdays[d.getDay()] + ' ' + d.getDate(); - - for(var i=0;i<24;i++) { - var cell = this.table.rows[i].cells[k]; - if(same_day(this.cal.todays_date, d)) - cell.viewunit.is_today = true; - else cell.viewunit.is_today = false; - - cell.viewunit.day = d; - //cell.viewunit.refresh(); - } - d=new Date(d.getFullYear(),d.getMonth(),d.getDate() + 1); - - } - - this.refresh_units(); -} - -//------------------------------------------------------. - -Calendar.ViewUnit = function() {} -Calendar.ViewUnit.prototype.init = function(parent) { - parent.style.border = "1px solid #CCC" ; - this.body = $a(parent, 'div', this.default_class); - this.parent = parent; - - var me = this; - this.body.onclick = function() { - erpnext.calendar.selected_date = me.day; - erpnext.calendar.selected_hour = me.hour; - - if(erpnext.calendar.cur_vu && erpnext.calendar.cur_vu!=me){ - erpnext.calendar.cur_vu.deselect(); - me.select(); - erpnext.calendar.cur_vu = me; - } - } - this.body.ondblclick = function() { - erpnext.calendar.add_event(); + wrapper.setup_complete = true; + } else { + $("#fullcalendar").fullCalendar("refetchEvents"); } } -Calendar.ViewUnit.prototype.set_header=function(v) { - this.header.innerHTML = v; -} - -Calendar.ViewUnit.prototype.set_today = function() { - this.is_today = true; - this.set_display(); -} - -Calendar.ViewUnit.prototype.clear = function() { - if(this.header)this.header.innerHTML = ''; - - // clear body - while(this.body.childNodes.length) - this.body.removeChild(this.body.childNodes[0]); -} - -Calendar.ViewUnit.prototype.set_display = function() { - var cn = '#FFF'; - - // colors - var col_tod_sel = '#EEE'; - var col_tod = '#FFF'; - var col_sel = '#EEF'; - - if(this.is_today) { - if(this.selected) cn = col_tod_sel; - else cn = col_tod; - } else - if(this.selected) cn = col_sel; - - if(this.header) { - if(this.is_disabled) { - this.body.className = this.default_class + ' cal_vu_disabled'; - this.header.style.color = '#BBB'; - } else { - this.body.className = this.default_class; - this.header.style.color = '#000'; - } - - if(this.day&&this.day.getDay()==0) - this.header.style.backgroundColor = '#FEE'; - else - this.header.style.backgroundColor = ''; - } - this.parent.style.backgroundColor = cn; -} - -Calendar.ViewUnit.prototype.is_selected = function() { - return (same_day(this.day, erpnext.calendar.selected_date) - && this.hour==erpnext.calendar.selected_hour) -} - -Calendar.ViewUnit.prototype.get_event_list = function() { - var y = this.day.getFullYear(); - var m = this.day.getMonth(); - var d = this.day.getDate(); - if(erpnext.calendar.events[y] && erpnext.calendar.events[y][m] && - erpnext.calendar.events[y][m][d] && - erpnext.calendar.events[y][m][d][this.hour]) { - return erpnext.calendar.events[y][m][d][this.hour]; - } else - return []; -} - -Calendar.ViewUnit.prototype.refresh = function() { - this.clear(); - - if(this.is_selected()) { - if(erpnext.calendar.cur_vu)erpnext.calendar.cur_vu.deselect(); - this.selected = true; - erpnext.calendar.cur_vu = this; - } - this.set_display(); - this.el = this.get_event_list(); - if(this.onrefresh)this.onrefresh(); - - for(var i in this.el) { - this.el[i].show(this); - } - - var me = this; -} - -Calendar.ViewUnit.prototype.select=function() { this.selected = true; this.set_display(); } -Calendar.ViewUnit.prototype.deselect=function() { this.selected = false; this.set_display(); } -Calendar.ViewUnit.prototype.setevent=function() { } - -Calendar.MonthViewUnit=function(parent) { - var me = this; - this.header = $("
") - .appendTo(parent) - .css({"cursor":"pointer"}) - .click(function() { - me.body.onclick(); - }) - .bind("dblclick", function() { - me.body.ondblclick(); - }) - .get(0); - - this.default_class = "cal_month_unit"; - this.init(parent); - - this.onrefresh = function() { - this.header.innerHTML = this.day.getDate(); - } -} -Calendar.MonthViewUnit.prototype = new Calendar.ViewUnit(); -Calendar.MonthViewUnit.prototype.is_selected = function() { - return same_day(this.day, erpnext.calendar.selected_date) -} - -Calendar.MonthViewUnit.prototype.get_event_list = function() { - return erpnext.calendar.get_daily_event_list(this.day); -} - -Calendar.DayViewUnit= function(parent) { - this.default_class = "cal_day_unit"; this.init(parent); -} -Calendar.DayViewUnit.prototype = new Calendar.ViewUnit(); -Calendar.DayViewUnit.prototype.onrefresh = function() { - if(this.el.length<3) - this.body.style.height = '30px'; - else this.body.style.height = ''; -} - -Calendar.WeekViewUnit=function(parent) { - this.default_class = "cal_week_unit"; this.init(parent); -} -Calendar.WeekViewUnit.prototype = new Calendar.ViewUnit(); -Calendar.WeekViewUnit.prototype.onrefresh = function() { - if(this.el.length<3) this.body.style.height = '30px'; - else this.body.style.height = ''; -} diff --git a/utilities/page/calendar/calendar.py b/utilities/page/calendar/calendar.py index baffc48825..09b3297b99 100644 --- a/utilities/page/calendar/calendar.py +++ b/utilities/page/calendar/calendar.py @@ -1 +1,31 @@ from __future__ import unicode_literals + +import webnotes + +@webnotes.whitelist() +def get_events(start, end): + roles = webnotes.get_roles() + events = webnotes.conn.sql("""select name as `id`, subject as title, + starts_on as `start`, ends_on as `end`, "Event" as doctype, owner + from tabEvent where event_date between %s and %s + and (event_type='Public' or owner=%s + or exists(select * from `tabEvent User` where + `tabEvent User`.parent=tabEvent.name and person=%s) + or exists(select * from `tabEvent Role` where + `tabEvent Role`.parent=tabEvent.name + and `tabEvent Role`.role in ('%s')))""" % ('%s', '%s', '%s', '%s', + "', '".join(roles)), (start, end, + webnotes.session.user, webnotes.session.user), as_dict=1, debug=1) + + return events + + block_days = webnotes.conn.sql("""select block_date as `start`, + name as `id`, reason as `title`, "Holiday List Block Date" as doctype, + where block_date between %s and %s + and """) + +@webnotes.whitelist() +def update_event(name, start, end): + webnotes.conn.sql("""update tabEvent set starts_on=%s, ends_on=%s where + name=%s""", (start, end, name)) + \ No newline at end of file