mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge remote-tracking branch 'inventree/master'
This commit is contained in:
commit
f21a0704a8
1515
InvenTree/InvenTree/static/fullcalendar/locales-all.js
Normal file
1515
InvenTree/InvenTree/static/fullcalendar/locales-all.js
Normal file
File diff suppressed because it is too large
Load Diff
27
InvenTree/InvenTree/static/fullcalendar/locales/af.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/af.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var af = {
|
||||
code: 'af',
|
||||
week: {
|
||||
dow: 1, // Maandag is die eerste dag van die week.
|
||||
doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Vorige',
|
||||
next: 'Volgende',
|
||||
today: 'Vandag',
|
||||
year: 'Jaar',
|
||||
month: 'Maand',
|
||||
week: 'Week',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
allDayText: 'Heeldag',
|
||||
moreLinkText: 'Addisionele',
|
||||
noEventsText: 'Daar is geen gebeurtenisse nie',
|
||||
};
|
||||
|
||||
return af;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-dz.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-dz.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arDz = {
|
||||
code: 'ar-dz',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arDz;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-kw.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-kw.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arKw = {
|
||||
code: 'ar-kw',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arKw;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-ly.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-ly.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arLy = {
|
||||
code: 'ar-ly',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arLy;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-ma.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-ma.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arMa = {
|
||||
code: 'ar-ma',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arMa;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-sa.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-sa.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arSa = {
|
||||
code: 'ar-sa',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arSa;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-tn.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar-tn.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var arTn = {
|
||||
code: 'ar-tn',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return arTn;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/ar.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/ar.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ar = {
|
||||
code: 'ar',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'السابق',
|
||||
next: 'التالي',
|
||||
today: 'اليوم',
|
||||
month: 'شهر',
|
||||
week: 'أسبوع',
|
||||
day: 'يوم',
|
||||
list: 'أجندة',
|
||||
},
|
||||
weekText: 'أسبوع',
|
||||
allDayText: 'اليوم كله',
|
||||
moreLinkText: 'أخرى',
|
||||
noEventsText: 'أي أحداث لعرض',
|
||||
};
|
||||
|
||||
return ar;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/az.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/az.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var az = {
|
||||
code: 'az',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Əvvəl',
|
||||
next: 'Sonra',
|
||||
today: 'Bu Gün',
|
||||
month: 'Ay',
|
||||
week: 'Həftə',
|
||||
day: 'Gün',
|
||||
list: 'Gündəm',
|
||||
},
|
||||
weekText: 'Həftə',
|
||||
allDayText: 'Bütün Gün',
|
||||
moreLinkText: function(n) {
|
||||
return '+ daha çox ' + n
|
||||
},
|
||||
noEventsText: 'Göstərmək üçün hadisə yoxdur',
|
||||
};
|
||||
|
||||
return az;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/bg.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/bg.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var bg = {
|
||||
code: 'bg',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'назад',
|
||||
next: 'напред',
|
||||
today: 'днес',
|
||||
month: 'Месец',
|
||||
week: 'Седмица',
|
||||
day: 'Ден',
|
||||
list: 'График',
|
||||
},
|
||||
allDayText: 'Цял ден',
|
||||
moreLinkText: function(n) {
|
||||
return '+още ' + n
|
||||
},
|
||||
noEventsText: 'Няма събития за показване',
|
||||
};
|
||||
|
||||
return bg;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/bs.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/bs.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var bs = {
|
||||
code: 'bs',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prošli',
|
||||
next: 'Sljedeći',
|
||||
today: 'Danas',
|
||||
month: 'Mjesec',
|
||||
week: 'Sedmica',
|
||||
day: 'Dan',
|
||||
list: 'Raspored',
|
||||
},
|
||||
weekText: 'Sed',
|
||||
allDayText: 'Cijeli dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nema događaja za prikazivanje',
|
||||
};
|
||||
|
||||
return bs;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/ca.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/ca.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ca = {
|
||||
code: 'ca',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Següent',
|
||||
today: 'Avui',
|
||||
month: 'Mes',
|
||||
week: 'Setmana',
|
||||
day: 'Dia',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Set',
|
||||
allDayText: 'Tot el dia',
|
||||
moreLinkText: 'més',
|
||||
noEventsText: 'No hi ha esdeveniments per mostrar',
|
||||
};
|
||||
|
||||
return ca;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/cs.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/cs.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var cs = {
|
||||
code: 'cs',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Dříve',
|
||||
next: 'Později',
|
||||
today: 'Nyní',
|
||||
month: 'Měsíc',
|
||||
week: 'Týden',
|
||||
day: 'Den',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Týd',
|
||||
allDayText: 'Celý den',
|
||||
moreLinkText: function(n) {
|
||||
return '+další: ' + n
|
||||
},
|
||||
noEventsText: 'Žádné akce k zobrazení',
|
||||
};
|
||||
|
||||
return cs;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/cy.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/cy.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var cy = {
|
||||
code: 'cy',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Blaenorol',
|
||||
next: 'Nesaf',
|
||||
today: 'Heddiw',
|
||||
year: 'Blwyddyn',
|
||||
month: 'Mis',
|
||||
week: 'Wythnos',
|
||||
day: 'Dydd',
|
||||
list: 'Rhestr',
|
||||
},
|
||||
weekText: 'Wythnos',
|
||||
allDayText: 'Trwy\'r dydd',
|
||||
moreLinkText: 'Mwy',
|
||||
noEventsText: 'Dim digwyddiadau',
|
||||
};
|
||||
|
||||
return cy;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/da.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/da.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var da = {
|
||||
code: 'da',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Forrige',
|
||||
next: 'Næste',
|
||||
today: 'I dag',
|
||||
month: 'Måned',
|
||||
week: 'Uge',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Uge',
|
||||
allDayText: 'Hele dagen',
|
||||
moreLinkText: 'flere',
|
||||
noEventsText: 'Ingen arrangementer at vise',
|
||||
};
|
||||
|
||||
return da;
|
||||
|
||||
}());
|
30
InvenTree/InvenTree/static/fullcalendar/locales/de-at.js
Normal file
30
InvenTree/InvenTree/static/fullcalendar/locales/de-at.js
Normal file
@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var deAt = {
|
||||
code: 'de-at',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zurück',
|
||||
next: 'Vor',
|
||||
today: 'Heute',
|
||||
year: 'Jahr',
|
||||
month: 'Monat',
|
||||
week: 'Woche',
|
||||
day: 'Tag',
|
||||
list: 'Terminübersicht',
|
||||
},
|
||||
weekText: 'KW',
|
||||
allDayText: 'Ganztägig',
|
||||
moreLinkText: function(n) {
|
||||
return '+ weitere ' + n
|
||||
},
|
||||
noEventsText: 'Keine Ereignisse anzuzeigen',
|
||||
};
|
||||
|
||||
return deAt;
|
||||
|
||||
}());
|
30
InvenTree/InvenTree/static/fullcalendar/locales/de.js
Normal file
30
InvenTree/InvenTree/static/fullcalendar/locales/de.js
Normal file
@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var de = {
|
||||
code: 'de',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zurück',
|
||||
next: 'Vor',
|
||||
today: 'Heute',
|
||||
year: 'Jahr',
|
||||
month: 'Monat',
|
||||
week: 'Woche',
|
||||
day: 'Tag',
|
||||
list: 'Terminübersicht',
|
||||
},
|
||||
weekText: 'KW',
|
||||
allDayText: 'Ganztägig',
|
||||
moreLinkText: function(n) {
|
||||
return '+ weitere ' + n
|
||||
},
|
||||
noEventsText: 'Keine Ereignisse anzuzeigen',
|
||||
};
|
||||
|
||||
return de;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/el.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/el.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var el = {
|
||||
code: 'el',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Προηγούμενος',
|
||||
next: 'Επόμενος',
|
||||
today: 'Σήμερα',
|
||||
month: 'Μήνας',
|
||||
week: 'Εβδομάδα',
|
||||
day: 'Ημέρα',
|
||||
list: 'Ατζέντα',
|
||||
},
|
||||
weekText: 'Εβδ',
|
||||
allDayText: 'Ολοήμερο',
|
||||
moreLinkText: 'περισσότερα',
|
||||
noEventsText: 'Δεν υπάρχουν γεγονότα προς εμφάνιση',
|
||||
};
|
||||
|
||||
return el;
|
||||
|
||||
}());
|
14
InvenTree/InvenTree/static/fullcalendar/locales/en-au.js
Normal file
14
InvenTree/InvenTree/static/fullcalendar/locales/en-au.js
Normal file
@ -0,0 +1,14 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enAu = {
|
||||
code: 'en-au',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
};
|
||||
|
||||
return enAu;
|
||||
|
||||
}());
|
14
InvenTree/InvenTree/static/fullcalendar/locales/en-gb.js
Normal file
14
InvenTree/InvenTree/static/fullcalendar/locales/en-gb.js
Normal file
@ -0,0 +1,14 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enGb = {
|
||||
code: 'en-gb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
};
|
||||
|
||||
return enGb;
|
||||
|
||||
}());
|
14
InvenTree/InvenTree/static/fullcalendar/locales/en-nz.js
Normal file
14
InvenTree/InvenTree/static/fullcalendar/locales/en-nz.js
Normal file
@ -0,0 +1,14 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var enNz = {
|
||||
code: 'en-nz',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
};
|
||||
|
||||
return enNz;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/eo.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/eo.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var eo = {
|
||||
code: 'eo',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Antaŭa',
|
||||
next: 'Sekva',
|
||||
today: 'Hodiaŭ',
|
||||
month: 'Monato',
|
||||
week: 'Semajno',
|
||||
day: 'Tago',
|
||||
list: 'Tagordo',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Tuta tago',
|
||||
moreLinkText: 'pli',
|
||||
noEventsText: 'Neniuj eventoj por montri',
|
||||
};
|
||||
|
||||
return eo;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/es-us.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/es-us.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var esUs = {
|
||||
code: 'es',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Sig',
|
||||
today: 'Hoy',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Todo el día',
|
||||
moreLinkText: 'más',
|
||||
noEventsText: 'No hay eventos para mostrar',
|
||||
};
|
||||
|
||||
return esUs;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/es.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/es.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var es = {
|
||||
code: 'es',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Sig',
|
||||
today: 'Hoy',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Todo el día',
|
||||
moreLinkText: 'más',
|
||||
noEventsText: 'No hay eventos para mostrar',
|
||||
};
|
||||
|
||||
return es;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/et.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/et.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var et = {
|
||||
code: 'et',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Eelnev',
|
||||
next: 'Järgnev',
|
||||
today: 'Täna',
|
||||
month: 'Kuu',
|
||||
week: 'Nädal',
|
||||
day: 'Päev',
|
||||
list: 'Päevakord',
|
||||
},
|
||||
weekText: 'näd',
|
||||
allDayText: 'Kogu päev',
|
||||
moreLinkText: function(n) {
|
||||
return '+ veel ' + n
|
||||
},
|
||||
noEventsText: 'Kuvamiseks puuduvad sündmused',
|
||||
};
|
||||
|
||||
return et;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/eu.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/eu.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var eu = {
|
||||
code: 'eu',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Aur',
|
||||
next: 'Hur',
|
||||
today: 'Gaur',
|
||||
month: 'Hilabetea',
|
||||
week: 'Astea',
|
||||
day: 'Eguna',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'As',
|
||||
allDayText: 'Egun osoa',
|
||||
moreLinkText: 'gehiago',
|
||||
noEventsText: 'Ez dago ekitaldirik erakusteko',
|
||||
};
|
||||
|
||||
return eu;
|
||||
|
||||
}());
|
30
InvenTree/InvenTree/static/fullcalendar/locales/fa.js
Normal file
30
InvenTree/InvenTree/static/fullcalendar/locales/fa.js
Normal file
@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fa = {
|
||||
code: 'fa',
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'قبلی',
|
||||
next: 'بعدی',
|
||||
today: 'امروز',
|
||||
month: 'ماه',
|
||||
week: 'هفته',
|
||||
day: 'روز',
|
||||
list: 'برنامه',
|
||||
},
|
||||
weekText: 'هف',
|
||||
allDayText: 'تمام روز',
|
||||
moreLinkText: function(n) {
|
||||
return 'بیش از ' + n
|
||||
},
|
||||
noEventsText: 'هیچ رویدادی به نمایش',
|
||||
};
|
||||
|
||||
return fa;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/fi.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/fi.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fi = {
|
||||
code: 'fi',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Edellinen',
|
||||
next: 'Seuraava',
|
||||
today: 'Tänään',
|
||||
month: 'Kuukausi',
|
||||
week: 'Viikko',
|
||||
day: 'Päivä',
|
||||
list: 'Tapahtumat',
|
||||
},
|
||||
weekText: 'Vk',
|
||||
allDayText: 'Koko päivä',
|
||||
moreLinkText: 'lisää',
|
||||
noEventsText: 'Ei näytettäviä tapahtumia',
|
||||
};
|
||||
|
||||
return fi;
|
||||
|
||||
}());
|
24
InvenTree/InvenTree/static/fullcalendar/locales/fr-ca.js
Normal file
24
InvenTree/InvenTree/static/fullcalendar/locales/fr-ca.js
Normal file
@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var frCa = {
|
||||
code: 'fr',
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: "Aujourd'hui",
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Mon planning',
|
||||
},
|
||||
weekText: 'Sem.',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return frCa;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/fr-ch.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/fr-ch.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var frCh = {
|
||||
code: 'fr-ch',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: 'Courant',
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Mon planning',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return frCh;
|
||||
|
||||
}());
|
28
InvenTree/InvenTree/static/fullcalendar/locales/fr.js
Normal file
28
InvenTree/InvenTree/static/fullcalendar/locales/fr.js
Normal file
@ -0,0 +1,28 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var fr = {
|
||||
code: 'fr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Précédent',
|
||||
next: 'Suivant',
|
||||
today: "Aujourd'hui",
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
week: 'Semaine',
|
||||
day: 'Jour',
|
||||
list: 'Planning',
|
||||
},
|
||||
weekText: 'Sem.',
|
||||
allDayText: 'Toute la journée',
|
||||
moreLinkText: 'en plus',
|
||||
noEventsText: 'Aucun événement à afficher',
|
||||
};
|
||||
|
||||
return fr;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/gl.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/gl.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var gl = {
|
||||
code: 'gl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Ant',
|
||||
next: 'Seg',
|
||||
today: 'Hoxe',
|
||||
month: 'Mes',
|
||||
week: 'Semana',
|
||||
day: 'Día',
|
||||
list: 'Axenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Todo o día',
|
||||
moreLinkText: 'máis',
|
||||
noEventsText: 'Non hai eventos para amosar',
|
||||
};
|
||||
|
||||
return gl;
|
||||
|
||||
}());
|
24
InvenTree/InvenTree/static/fullcalendar/locales/he.js
Normal file
24
InvenTree/InvenTree/static/fullcalendar/locales/he.js
Normal file
@ -0,0 +1,24 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var he = {
|
||||
code: 'he',
|
||||
direction: 'rtl',
|
||||
buttonText: {
|
||||
prev: 'הקודם',
|
||||
next: 'הבא',
|
||||
today: 'היום',
|
||||
month: 'חודש',
|
||||
week: 'שבוע',
|
||||
day: 'יום',
|
||||
list: 'סדר יום',
|
||||
},
|
||||
allDayText: 'כל היום',
|
||||
moreLinkText: 'אחר',
|
||||
noEventsText: 'אין אירועים להצגה',
|
||||
weekText: 'שבוע',
|
||||
};
|
||||
|
||||
return he;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/hi.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/hi.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hi = {
|
||||
code: 'hi',
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'पिछला',
|
||||
next: 'अगला',
|
||||
today: 'आज',
|
||||
month: 'महीना',
|
||||
week: 'सप्ताह',
|
||||
day: 'दिन',
|
||||
list: 'कार्यसूची',
|
||||
},
|
||||
weekText: 'हफ्ता',
|
||||
allDayText: 'सभी दिन',
|
||||
moreLinkText: function(n) {
|
||||
return '+अधिक ' + n
|
||||
},
|
||||
noEventsText: 'कोई घटनाओं को प्रदर्शित करने के लिए',
|
||||
};
|
||||
|
||||
return hi;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/hr.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/hr.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hr = {
|
||||
code: 'hr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prijašnji',
|
||||
next: 'Sljedeći',
|
||||
today: 'Danas',
|
||||
month: 'Mjesec',
|
||||
week: 'Tjedan',
|
||||
day: 'Dan',
|
||||
list: 'Raspored',
|
||||
},
|
||||
weekText: 'Tje',
|
||||
allDayText: 'Cijeli dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nema događaja za prikaz',
|
||||
};
|
||||
|
||||
return hr;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/hu.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/hu.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hu = {
|
||||
code: 'hu',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'vissza',
|
||||
next: 'előre',
|
||||
today: 'ma',
|
||||
month: 'Hónap',
|
||||
week: 'Hét',
|
||||
day: 'Nap',
|
||||
list: 'Napló',
|
||||
},
|
||||
weekText: 'Hét',
|
||||
allDayText: 'Egész nap',
|
||||
moreLinkText: 'további',
|
||||
noEventsText: 'Nincs megjeleníthető esemény',
|
||||
};
|
||||
|
||||
return hu;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/hy-am.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/hy-am.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var hyAm = {
|
||||
code: 'hy-am',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Նախորդ',
|
||||
next: 'Հաջորդ',
|
||||
today: 'Այսօր',
|
||||
month: 'Ամիս',
|
||||
week: 'Շաբաթ',
|
||||
day: 'Օր',
|
||||
list: 'Օրվա ցուցակ',
|
||||
},
|
||||
weekText: 'Շաբ',
|
||||
allDayText: 'Ամբողջ օր',
|
||||
moreLinkText: function(n) {
|
||||
return '+ ևս ' + n
|
||||
},
|
||||
noEventsText: 'Բացակայում է իրադարձությունը ցուցադրելու',
|
||||
};
|
||||
|
||||
return hyAm;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/id.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/id.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var id = {
|
||||
code: 'id',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'mundur',
|
||||
next: 'maju',
|
||||
today: 'hari ini',
|
||||
month: 'Bulan',
|
||||
week: 'Minggu',
|
||||
day: 'Hari',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Mg',
|
||||
allDayText: 'Sehari penuh',
|
||||
moreLinkText: 'lebih',
|
||||
noEventsText: 'Tidak ada acara untuk ditampilkan',
|
||||
};
|
||||
|
||||
return id;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/is.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/is.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var is = {
|
||||
code: 'is',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Fyrri',
|
||||
next: 'Næsti',
|
||||
today: 'Í dag',
|
||||
month: 'Mánuður',
|
||||
week: 'Vika',
|
||||
day: 'Dagur',
|
||||
list: 'Dagskrá',
|
||||
},
|
||||
weekText: 'Vika',
|
||||
allDayText: 'Allan daginn',
|
||||
moreLinkText: 'meira',
|
||||
noEventsText: 'Engir viðburðir til að sýna',
|
||||
};
|
||||
|
||||
return is;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/it.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/it.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var it = {
|
||||
code: 'it',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prec',
|
||||
next: 'Succ',
|
||||
today: 'Oggi',
|
||||
month: 'Mese',
|
||||
week: 'Settimana',
|
||||
day: 'Giorno',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'Tutto il giorno',
|
||||
moreLinkText: function(n) {
|
||||
return '+altri ' + n
|
||||
},
|
||||
noEventsText: 'Non ci sono eventi da visualizzare',
|
||||
};
|
||||
|
||||
return it;
|
||||
|
||||
}());
|
25
InvenTree/InvenTree/static/fullcalendar/locales/ja.js
Normal file
25
InvenTree/InvenTree/static/fullcalendar/locales/ja.js
Normal file
@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ja = {
|
||||
code: 'ja',
|
||||
buttonText: {
|
||||
prev: '前',
|
||||
next: '次',
|
||||
today: '今日',
|
||||
month: '月',
|
||||
week: '週',
|
||||
day: '日',
|
||||
list: '予定リスト',
|
||||
},
|
||||
weekText: '週',
|
||||
allDayText: '終日',
|
||||
moreLinkText: function(n) {
|
||||
return '他 ' + n + ' 件'
|
||||
},
|
||||
noEventsText: '表示する予定はありません',
|
||||
};
|
||||
|
||||
return ja;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/ka.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/ka.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ka = {
|
||||
code: 'ka',
|
||||
week: {
|
||||
dow: 1,
|
||||
doy: 7,
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'წინა',
|
||||
next: 'შემდეგი',
|
||||
today: 'დღეს',
|
||||
month: 'თვე',
|
||||
week: 'კვირა',
|
||||
day: 'დღე',
|
||||
list: 'დღის წესრიგი',
|
||||
},
|
||||
weekText: 'კვ',
|
||||
allDayText: 'მთელი დღე',
|
||||
moreLinkText: function(n) {
|
||||
return '+ კიდევ ' + n
|
||||
},
|
||||
noEventsText: 'ღონისძიებები არ არის',
|
||||
};
|
||||
|
||||
return ka;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/kk.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/kk.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var kk = {
|
||||
code: 'kk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Алдыңғы',
|
||||
next: 'Келесі',
|
||||
today: 'Бүгін',
|
||||
month: 'Ай',
|
||||
week: 'Апта',
|
||||
day: 'Күн',
|
||||
list: 'Күн тәртібі',
|
||||
},
|
||||
weekText: 'Не',
|
||||
allDayText: 'Күні бойы',
|
||||
moreLinkText: function(n) {
|
||||
return '+ тағы ' + n
|
||||
},
|
||||
noEventsText: 'Көрсету үшін оқиғалар жоқ',
|
||||
};
|
||||
|
||||
return kk;
|
||||
|
||||
}());
|
23
InvenTree/InvenTree/static/fullcalendar/locales/ko.js
Normal file
23
InvenTree/InvenTree/static/fullcalendar/locales/ko.js
Normal file
@ -0,0 +1,23 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ko = {
|
||||
code: 'ko',
|
||||
buttonText: {
|
||||
prev: '이전달',
|
||||
next: '다음달',
|
||||
today: '오늘',
|
||||
month: '월',
|
||||
week: '주',
|
||||
day: '일',
|
||||
list: '일정목록',
|
||||
},
|
||||
weekText: '주',
|
||||
allDayText: '종일',
|
||||
moreLinkText: '개',
|
||||
noEventsText: '일정이 없습니다',
|
||||
};
|
||||
|
||||
return ko;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/lb.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/lb.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lb = {
|
||||
code: 'lb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Zréck',
|
||||
next: 'Weider',
|
||||
today: 'Haut',
|
||||
month: 'Mount',
|
||||
week: 'Woch',
|
||||
day: 'Dag',
|
||||
list: 'Terminiwwersiicht',
|
||||
},
|
||||
weekText: 'W',
|
||||
allDayText: 'Ganzen Dag',
|
||||
moreLinkText: 'méi',
|
||||
noEventsText: 'Nee Evenementer ze affichéieren',
|
||||
};
|
||||
|
||||
return lb;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/lt.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/lt.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lt = {
|
||||
code: 'lt',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Atgal',
|
||||
next: 'Pirmyn',
|
||||
today: 'Šiandien',
|
||||
month: 'Mėnuo',
|
||||
week: 'Savaitė',
|
||||
day: 'Diena',
|
||||
list: 'Darbotvarkė',
|
||||
},
|
||||
weekText: 'SAV',
|
||||
allDayText: 'Visą dieną',
|
||||
moreLinkText: 'daugiau',
|
||||
noEventsText: 'Nėra įvykių rodyti',
|
||||
};
|
||||
|
||||
return lt;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/lv.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/lv.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var lv = {
|
||||
code: 'lv',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Iepr.',
|
||||
next: 'Nāk.',
|
||||
today: 'Šodien',
|
||||
month: 'Mēnesis',
|
||||
week: 'Nedēļa',
|
||||
day: 'Diena',
|
||||
list: 'Dienas kārtība',
|
||||
},
|
||||
weekText: 'Ned.',
|
||||
allDayText: 'Visu dienu',
|
||||
moreLinkText: function(n) {
|
||||
return '+vēl ' + n
|
||||
},
|
||||
noEventsText: 'Nav notikumu',
|
||||
};
|
||||
|
||||
return lv;
|
||||
|
||||
}());
|
25
InvenTree/InvenTree/static/fullcalendar/locales/mk.js
Normal file
25
InvenTree/InvenTree/static/fullcalendar/locales/mk.js
Normal file
@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var mk = {
|
||||
code: 'mk',
|
||||
buttonText: {
|
||||
prev: 'претходно',
|
||||
next: 'следно',
|
||||
today: 'Денес',
|
||||
month: 'Месец',
|
||||
week: 'Недела',
|
||||
day: 'Ден',
|
||||
list: 'График',
|
||||
},
|
||||
weekText: 'Сед',
|
||||
allDayText: 'Цел ден',
|
||||
moreLinkText: function(n) {
|
||||
return '+повеќе ' + n
|
||||
},
|
||||
noEventsText: 'Нема настани за прикажување',
|
||||
};
|
||||
|
||||
return mk;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/ms.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/ms.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ms = {
|
||||
code: 'ms',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Sebelum',
|
||||
next: 'Selepas',
|
||||
today: 'hari ini',
|
||||
month: 'Bulan',
|
||||
week: 'Minggu',
|
||||
day: 'Hari',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Mg',
|
||||
allDayText: 'Sepanjang hari',
|
||||
moreLinkText: function(n) {
|
||||
return 'masih ada ' + n + ' acara'
|
||||
},
|
||||
noEventsText: 'Tiada peristiwa untuk dipaparkan',
|
||||
};
|
||||
|
||||
return ms;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/nb.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/nb.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nb = {
|
||||
code: 'nb',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Forrige',
|
||||
next: 'Neste',
|
||||
today: 'I dag',
|
||||
month: 'Måned',
|
||||
week: 'Uke',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Uke',
|
||||
allDayText: 'Hele dagen',
|
||||
moreLinkText: 'til',
|
||||
noEventsText: 'Ingen hendelser å vise',
|
||||
};
|
||||
|
||||
return nb;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/ne.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/ne.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ne = {
|
||||
code: 'ne', // code for nepal
|
||||
week: {
|
||||
dow: 7, // Sunday is the first day of the week.
|
||||
doy: 1, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'अघिल्लो',
|
||||
next: 'अर्को',
|
||||
today: 'आज',
|
||||
month: 'महिना',
|
||||
week: 'हप्ता',
|
||||
day: 'दिन',
|
||||
list: 'सूची',
|
||||
},
|
||||
weekText: 'हप्ता',
|
||||
allDayText: 'दिनभरि',
|
||||
moreLinkText: 'थप लिंक',
|
||||
noEventsText: 'देखाउनको लागि कुनै घटनाहरू छैनन्',
|
||||
};
|
||||
|
||||
return ne;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/nl.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/nl.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nl = {
|
||||
code: 'nl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Vorige',
|
||||
next: 'Volgende',
|
||||
today: 'Vandaag',
|
||||
year: 'Jaar',
|
||||
month: 'Maand',
|
||||
week: 'Week',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
allDayText: 'Hele dag',
|
||||
moreLinkText: 'extra',
|
||||
noEventsText: 'Geen evenementen om te laten zien',
|
||||
};
|
||||
|
||||
return nl;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/nn.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/nn.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var nn = {
|
||||
code: 'nn',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Førre',
|
||||
next: 'Neste',
|
||||
today: 'I dag',
|
||||
month: 'Månad',
|
||||
week: 'Veke',
|
||||
day: 'Dag',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Veke',
|
||||
allDayText: 'Heile dagen',
|
||||
moreLinkText: 'til',
|
||||
noEventsText: 'Ingen hendelser å vise',
|
||||
};
|
||||
|
||||
return nn;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/pl.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/pl.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var pl = {
|
||||
code: 'pl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Poprzedni',
|
||||
next: 'Następny',
|
||||
today: 'Dziś',
|
||||
month: 'Miesiąc',
|
||||
week: 'Tydzień',
|
||||
day: 'Dzień',
|
||||
list: 'Plan dnia',
|
||||
},
|
||||
weekText: 'Tydz',
|
||||
allDayText: 'Cały dzień',
|
||||
moreLinkText: 'więcej',
|
||||
noEventsText: 'Brak wydarzeń do wyświetlenia',
|
||||
};
|
||||
|
||||
return pl;
|
||||
|
||||
}());
|
25
InvenTree/InvenTree/static/fullcalendar/locales/pt-br.js
Normal file
25
InvenTree/InvenTree/static/fullcalendar/locales/pt-br.js
Normal file
@ -0,0 +1,25 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ptBr = {
|
||||
code: 'pt-br',
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Próximo',
|
||||
today: 'Hoje',
|
||||
month: 'Mês',
|
||||
week: 'Semana',
|
||||
day: 'Dia',
|
||||
list: 'Lista',
|
||||
},
|
||||
weekText: 'Sm',
|
||||
allDayText: 'dia inteiro',
|
||||
moreLinkText: function(n) {
|
||||
return 'mais +' + n
|
||||
},
|
||||
noEventsText: 'Não há eventos para mostrar',
|
||||
};
|
||||
|
||||
return ptBr;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/pt.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/pt.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var pt = {
|
||||
code: 'pt',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Anterior',
|
||||
next: 'Seguinte',
|
||||
today: 'Hoje',
|
||||
month: 'Mês',
|
||||
week: 'Semana',
|
||||
day: 'Dia',
|
||||
list: 'Agenda',
|
||||
},
|
||||
weekText: 'Sem',
|
||||
allDayText: 'Todo o dia',
|
||||
moreLinkText: 'mais',
|
||||
noEventsText: 'Não há eventos para mostrar',
|
||||
};
|
||||
|
||||
return pt;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/ro.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/ro.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ro = {
|
||||
code: 'ro',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'precedentă',
|
||||
next: 'următoare',
|
||||
today: 'Azi',
|
||||
month: 'Lună',
|
||||
week: 'Săptămână',
|
||||
day: 'Zi',
|
||||
list: 'Agendă',
|
||||
},
|
||||
weekText: 'Săpt',
|
||||
allDayText: 'Toată ziua',
|
||||
moreLinkText: function(n) {
|
||||
return '+alte ' + n
|
||||
},
|
||||
noEventsText: 'Nu există evenimente de afișat',
|
||||
};
|
||||
|
||||
return ro;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/ru.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/ru.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ru = {
|
||||
code: 'ru',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Пред',
|
||||
next: 'След',
|
||||
today: 'Сегодня',
|
||||
month: 'Месяц',
|
||||
week: 'Неделя',
|
||||
day: 'День',
|
||||
list: 'Повестка дня',
|
||||
},
|
||||
weekText: 'Нед',
|
||||
allDayText: 'Весь день',
|
||||
moreLinkText: function(n) {
|
||||
return '+ ещё ' + n
|
||||
},
|
||||
noEventsText: 'Нет событий для отображения',
|
||||
};
|
||||
|
||||
return ru;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/sk.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/sk.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sk = {
|
||||
code: 'sk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Predchádzajúci',
|
||||
next: 'Nasledujúci',
|
||||
today: 'Dnes',
|
||||
month: 'Mesiac',
|
||||
week: 'Týždeň',
|
||||
day: 'Deň',
|
||||
list: 'Rozvrh',
|
||||
},
|
||||
weekText: 'Ty',
|
||||
allDayText: 'Celý deň',
|
||||
moreLinkText: function(n) {
|
||||
return '+ďalšie: ' + n
|
||||
},
|
||||
noEventsText: 'Žiadne akcie na zobrazenie',
|
||||
};
|
||||
|
||||
return sk;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/sl.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/sl.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sl = {
|
||||
code: 'sl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prejšnji',
|
||||
next: 'Naslednji',
|
||||
today: 'Trenutni',
|
||||
month: 'Mesec',
|
||||
week: 'Teden',
|
||||
day: 'Dan',
|
||||
list: 'Dnevni red',
|
||||
},
|
||||
weekText: 'Teden',
|
||||
allDayText: 'Ves dan',
|
||||
moreLinkText: 'več',
|
||||
noEventsText: 'Ni dogodkov za prikaz',
|
||||
};
|
||||
|
||||
return sl;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/sq.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/sq.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sq = {
|
||||
code: 'sq',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'mbrapa',
|
||||
next: 'Përpara',
|
||||
today: 'sot',
|
||||
month: 'Muaj',
|
||||
week: 'Javë',
|
||||
day: 'Ditë',
|
||||
list: 'Listë',
|
||||
},
|
||||
weekText: 'Ja',
|
||||
allDayText: 'Gjithë ditën',
|
||||
moreLinkText: function(n) {
|
||||
return '+më tepër ' + n
|
||||
},
|
||||
noEventsText: 'Nuk ka evente për të shfaqur',
|
||||
};
|
||||
|
||||
return sq;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/sr-cyrl.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/sr-cyrl.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var srCyrl = {
|
||||
code: 'sr-cyrl',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Претходна',
|
||||
next: 'следећи',
|
||||
today: 'Данас',
|
||||
month: 'Месец',
|
||||
week: 'Недеља',
|
||||
day: 'Дан',
|
||||
list: 'Планер',
|
||||
},
|
||||
weekText: 'Сед',
|
||||
allDayText: 'Цео дан',
|
||||
moreLinkText: function(n) {
|
||||
return '+ још ' + n
|
||||
},
|
||||
noEventsText: 'Нема догађаја за приказ',
|
||||
};
|
||||
|
||||
return srCyrl;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/sr.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/sr.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sr = {
|
||||
code: 'sr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Prethodna',
|
||||
next: 'Sledeći',
|
||||
today: 'Danas',
|
||||
month: 'Mеsеc',
|
||||
week: 'Nеdеlja',
|
||||
day: 'Dan',
|
||||
list: 'Planеr',
|
||||
},
|
||||
weekText: 'Sed',
|
||||
allDayText: 'Cеo dan',
|
||||
moreLinkText: function(n) {
|
||||
return '+ još ' + n
|
||||
},
|
||||
noEventsText: 'Nеma događaja za prikaz',
|
||||
};
|
||||
|
||||
return sr;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/sv.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/sv.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var sv = {
|
||||
code: 'sv',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Förra',
|
||||
next: 'Nästa',
|
||||
today: 'Idag',
|
||||
month: 'Månad',
|
||||
week: 'Vecka',
|
||||
day: 'Dag',
|
||||
list: 'Program',
|
||||
},
|
||||
weekText: 'v.',
|
||||
allDayText: 'Heldag',
|
||||
moreLinkText: 'till',
|
||||
noEventsText: 'Inga händelser att visa',
|
||||
};
|
||||
|
||||
return sv;
|
||||
|
||||
}());
|
30
InvenTree/InvenTree/static/fullcalendar/locales/th.js
Normal file
30
InvenTree/InvenTree/static/fullcalendar/locales/th.js
Normal file
@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var th = {
|
||||
code: 'th',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'ก่อนหน้า',
|
||||
next: 'ถัดไป',
|
||||
prevYear: 'ปีก่อนหน้า',
|
||||
nextYear: 'ปีถัดไป',
|
||||
year: 'ปี',
|
||||
today: 'วันนี้',
|
||||
month: 'เดือน',
|
||||
week: 'สัปดาห์',
|
||||
day: 'วัน',
|
||||
list: 'กำหนดการ',
|
||||
},
|
||||
weekText: 'สัปดาห์',
|
||||
allDayText: 'ตลอดวัน',
|
||||
moreLinkText: 'เพิ่มเติม',
|
||||
noEventsText: 'ไม่มีกิจกรรมที่จะแสดง',
|
||||
};
|
||||
|
||||
return th;
|
||||
|
||||
}());
|
27
InvenTree/InvenTree/static/fullcalendar/locales/tr.js
Normal file
27
InvenTree/InvenTree/static/fullcalendar/locales/tr.js
Normal file
@ -0,0 +1,27 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var tr = {
|
||||
code: 'tr',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'geri',
|
||||
next: 'ileri',
|
||||
today: 'bugün',
|
||||
month: 'Ay',
|
||||
week: 'Hafta',
|
||||
day: 'Gün',
|
||||
list: 'Ajanda',
|
||||
},
|
||||
weekText: 'Hf',
|
||||
allDayText: 'Tüm gün',
|
||||
moreLinkText: 'daha fazla',
|
||||
noEventsText: 'Gösterilecek etkinlik yok',
|
||||
};
|
||||
|
||||
return tr;
|
||||
|
||||
}());
|
17
InvenTree/InvenTree/static/fullcalendar/locales/ug.js
Normal file
17
InvenTree/InvenTree/static/fullcalendar/locales/ug.js
Normal file
@ -0,0 +1,17 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var ug = {
|
||||
code: 'ug',
|
||||
buttonText: {
|
||||
month: 'ئاي',
|
||||
week: 'ھەپتە',
|
||||
day: 'كۈن',
|
||||
list: 'كۈنتەرتىپ',
|
||||
},
|
||||
allDayText: 'پۈتۈن كۈن',
|
||||
};
|
||||
|
||||
return ug;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/uk.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/uk.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var uk = {
|
||||
code: 'uk',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 1st is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Попередній',
|
||||
next: 'далі',
|
||||
today: 'Сьогодні',
|
||||
month: 'Місяць',
|
||||
week: 'Тиждень',
|
||||
day: 'День',
|
||||
list: 'Порядок денний',
|
||||
},
|
||||
weekText: 'Тиж',
|
||||
allDayText: 'Увесь день',
|
||||
moreLinkText: function(n) {
|
||||
return '+ще ' + n + '...'
|
||||
},
|
||||
noEventsText: 'Немає подій для відображення',
|
||||
};
|
||||
|
||||
return uk;
|
||||
|
||||
}());
|
21
InvenTree/InvenTree/static/fullcalendar/locales/uz.js
Normal file
21
InvenTree/InvenTree/static/fullcalendar/locales/uz.js
Normal file
@ -0,0 +1,21 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var uz = {
|
||||
code: 'uz',
|
||||
buttonText: {
|
||||
month: 'Oy',
|
||||
week: 'Xafta',
|
||||
day: 'Kun',
|
||||
list: 'Kun tartibi',
|
||||
},
|
||||
allDayText: "Kun bo'yi",
|
||||
moreLinkText: function(n) {
|
||||
return '+ yana ' + n
|
||||
},
|
||||
noEventsText: "Ko'rsatish uchun voqealar yo'q",
|
||||
};
|
||||
|
||||
return uz;
|
||||
|
||||
}());
|
29
InvenTree/InvenTree/static/fullcalendar/locales/vi.js
Normal file
29
InvenTree/InvenTree/static/fullcalendar/locales/vi.js
Normal file
@ -0,0 +1,29 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var vi = {
|
||||
code: 'vi',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: 'Trước',
|
||||
next: 'Tiếp',
|
||||
today: 'Hôm nay',
|
||||
month: 'Tháng',
|
||||
week: 'Tuần',
|
||||
day: 'Ngày',
|
||||
list: 'Lịch biểu',
|
||||
},
|
||||
weekText: 'Tu',
|
||||
allDayText: 'Cả ngày',
|
||||
moreLinkText: function(n) {
|
||||
return '+ thêm ' + n
|
||||
},
|
||||
noEventsText: 'Không có sự kiện để hiển thị',
|
||||
};
|
||||
|
||||
return vi;
|
||||
|
||||
}());
|
30
InvenTree/InvenTree/static/fullcalendar/locales/zh-cn.js
Normal file
30
InvenTree/InvenTree/static/fullcalendar/locales/zh-cn.js
Normal file
@ -0,0 +1,30 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var zhCn = {
|
||||
code: 'zh-cn',
|
||||
week: {
|
||||
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
buttonText: {
|
||||
prev: '上月',
|
||||
next: '下月',
|
||||
today: '今天',
|
||||
month: '月',
|
||||
week: '周',
|
||||
day: '日',
|
||||
list: '日程',
|
||||
},
|
||||
weekText: '周',
|
||||
allDayText: '全天',
|
||||
moreLinkText: function(n) {
|
||||
return '另外 ' + n + ' 个'
|
||||
},
|
||||
noEventsText: '没有事件显示',
|
||||
};
|
||||
|
||||
return zhCn;
|
||||
|
||||
}());
|
23
InvenTree/InvenTree/static/fullcalendar/locales/zh-tw.js
Normal file
23
InvenTree/InvenTree/static/fullcalendar/locales/zh-tw.js
Normal file
@ -0,0 +1,23 @@
|
||||
FullCalendar.globalLocales.push(function () {
|
||||
'use strict';
|
||||
|
||||
var zhTw = {
|
||||
code: 'zh-tw',
|
||||
buttonText: {
|
||||
prev: '上月',
|
||||
next: '下月',
|
||||
today: '今天',
|
||||
month: '月',
|
||||
week: '週',
|
||||
day: '天',
|
||||
list: '活動列表',
|
||||
},
|
||||
weekText: '周',
|
||||
allDayText: '整天',
|
||||
moreLinkText: '顯示更多',
|
||||
noEventsText: '没有任何活動',
|
||||
};
|
||||
|
||||
return zhTw;
|
||||
|
||||
}());
|
1429
InvenTree/InvenTree/static/fullcalendar/main.css
Normal file
1429
InvenTree/InvenTree/static/fullcalendar/main.css
Normal file
File diff suppressed because it is too large
Load Diff
14322
InvenTree/InvenTree/static/fullcalendar/main.js
Normal file
14322
InvenTree/InvenTree/static/fullcalendar/main.js
Normal file
File diff suppressed because one or more lines are too long
@ -152,11 +152,16 @@ function enableField(fieldName, enabled, options={}) {
|
||||
|
||||
function clearField(fieldName, options={}) {
|
||||
|
||||
setFieldValue(fieldName, '', options);
|
||||
}
|
||||
|
||||
function setFieldValue(fieldName, value, options={}) {
|
||||
|
||||
var modal = options.modal || '#modal-form';
|
||||
|
||||
var field = getFieldByName(modal, fieldName);
|
||||
|
||||
field.val("");
|
||||
field.val(value);
|
||||
}
|
||||
|
||||
|
||||
|
@ -152,6 +152,11 @@ class SalesOrderStatus(StatusCode):
|
||||
PENDING,
|
||||
]
|
||||
|
||||
# Completed orders
|
||||
COMPLETE = [
|
||||
SHIPPED,
|
||||
]
|
||||
|
||||
|
||||
class StockStatus(StatusCode):
|
||||
|
||||
|
@ -93,6 +93,7 @@ dynamic_javascript_urls = [
|
||||
url(r'^barcode.js', DynamicJsView.as_view(template_name='js/barcode.js'), name='barcode.js'),
|
||||
url(r'^bom.js', DynamicJsView.as_view(template_name='js/bom.js'), name='bom.js'),
|
||||
url(r'^build.js', DynamicJsView.as_view(template_name='js/build.js'), name='build.js'),
|
||||
url(r'^calendar.js', DynamicJsView.as_view(template_name='js/calendar.js'), name='calendar.js'),
|
||||
url(r'^company.js', DynamicJsView.as_view(template_name='js/company.js'), name='company.js'),
|
||||
url(r'^order.js', DynamicJsView.as_view(template_name='js/order.js'), name='order.js'),
|
||||
url(r'^part.js', DynamicJsView.as_view(template_name='js/part.js'), name='part.js'),
|
||||
|
@ -90,6 +90,13 @@ class BuildList(generics.ListCreateAPIView):
|
||||
if part is not None:
|
||||
queryset = queryset.filter(part=part)
|
||||
|
||||
# Filter by 'date range'
|
||||
min_date = params.get('min_date', None)
|
||||
max_date = params.get('max_date', None)
|
||||
|
||||
if min_date is not None and max_date is not None:
|
||||
queryset = Build.filterByDate(queryset, min_date, max_date)
|
||||
|
||||
return queryset
|
||||
|
||||
def get_serializer(self, *args, **kwargs):
|
||||
|
@ -27,6 +27,8 @@ from InvenTree.helpers import increment, getSetting, normalize
|
||||
from InvenTree.validators import validate_build_order_reference
|
||||
from InvenTree.models import InvenTreeAttachment
|
||||
|
||||
import common.models
|
||||
|
||||
import InvenTree.fields
|
||||
|
||||
from stock import models as StockModels
|
||||
@ -59,6 +61,37 @@ class Build(MPTTModel):
|
||||
verbose_name = _("Build Order")
|
||||
verbose_name_plural = _("Build Orders")
|
||||
|
||||
@staticmethod
|
||||
def filterByDate(queryset, min_date, max_date):
|
||||
"""
|
||||
Filter by 'minimum and maximum date range'
|
||||
|
||||
- Specified as min_date, max_date
|
||||
- Both must be specified for filter to be applied
|
||||
"""
|
||||
|
||||
date_fmt = '%Y-%m-%d' # ISO format date string
|
||||
|
||||
# Ensure that both dates are valid
|
||||
try:
|
||||
min_date = datetime.strptime(str(min_date), date_fmt).date()
|
||||
max_date = datetime.strptime(str(max_date), date_fmt).date()
|
||||
except (ValueError, TypeError):
|
||||
# Date processing error, return queryset unchanged
|
||||
return queryset
|
||||
|
||||
# Order was completed within the specified range
|
||||
completed = Q(status=BuildStatus.COMPLETE) & Q(completion_date__gte=min_date) & Q(completion_date__lte=max_date)
|
||||
|
||||
# Order target date falls witin specified range
|
||||
pending = Q(status__in=BuildStatus.ACTIVE_CODES) & ~Q(target_date=None) & Q(target_date__gte=min_date) & Q(target_date__lte=max_date)
|
||||
|
||||
# TODO - Construct a queryset for "overdue" orders
|
||||
|
||||
queryset = queryset.filter(completed | pending)
|
||||
|
||||
return queryset
|
||||
|
||||
def __str__(self):
|
||||
|
||||
prefix = getSetting("BUILDORDER_REFERENCE_PREFIX")
|
||||
@ -819,6 +852,10 @@ class Build(MPTTModel):
|
||||
location__in=[loc for loc in self.take_from.getUniqueChildren()]
|
||||
)
|
||||
|
||||
# Exclude expired stock items
|
||||
if not common.models.InvenTreeSetting.get_setting('STOCK_ALLOW_EXPIRED_BUILD'):
|
||||
items = items.exclude(StockModels.StockItem.EXPIRED_FILTER)
|
||||
|
||||
return items
|
||||
|
||||
@property
|
||||
|
@ -28,7 +28,7 @@ class BuildSerializer(InvenTreeModelSerializer):
|
||||
|
||||
quantity = serializers.FloatField()
|
||||
|
||||
overdue = serializers.BooleanField()
|
||||
overdue = serializers.BooleanField(required=False, read_only=True)
|
||||
|
||||
@staticmethod
|
||||
def annotate_queryset(queryset):
|
||||
|
@ -88,11 +88,20 @@ src="{% static 'img/blank_image.png' %}"
|
||||
<td>{% trans "Status" %}</td>
|
||||
<td>
|
||||
{% build_status_label build.status %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if build.target_date %}
|
||||
<tr>
|
||||
<td><span class='fas fa-calendar-alt'></span></td>
|
||||
<td>{% trans "Target Date" %}</td>
|
||||
<td>
|
||||
{{ build.target_date }}
|
||||
{% if build.is_overdue %}
|
||||
<span title='{% trans "This build was due on" %} {{ build.target_date }}' class='label label-red'>{% trans "Overdue" %}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td><span class='fas fa-spinner'></span></td>
|
||||
<td>{% trans "Progress" %}</td>
|
||||
|
@ -1,4 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load inventree_extras %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
@ -8,7 +10,6 @@ InvenTree | {% trans "Build Orders" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
||||
<div class='row'>
|
||||
<div class='col-sm-6'>
|
||||
<h3>{% trans "Build Orders" %}</h3>
|
||||
@ -21,8 +22,17 @@ InvenTree | {% trans "Build Orders" %}
|
||||
|
||||
<div id='button-toolbar'>
|
||||
<div class='button-toolbar container-fluid' style='float: right;'>
|
||||
{% if roles.build.add %}
|
||||
<button type='button' class="btn btn-success" id='new-build'>
|
||||
<span class='fas fa-tools'></span> {% trans "New Build Order" %}</button>
|
||||
<span class='fas fa-tools'></span> {% trans "New Build Order" %}
|
||||
</button>
|
||||
{% endif %}
|
||||
<button class='btn btn-default' type='button' id='view-calendar' title='{% trans "Display calendar view" %}'>
|
||||
<span class='fas fa-calendar-alt'></span>
|
||||
</button>
|
||||
<button class='btn btn-default' type='button' id='view-list' title='{% trans "Display list view" %}'>
|
||||
<span class='fas fa-th-list'></span>
|
||||
</button>
|
||||
<div class='filter-list' id='filter-list-build'>
|
||||
<!-- An empty div in which the filter list will be constructed -->
|
||||
</div>
|
||||
@ -33,11 +43,120 @@ InvenTree | {% trans "Build Orders" %}
|
||||
<table class='table table-striped table-condensed' id='build-table' data-toolbar='#button-toolbar'>
|
||||
</table>
|
||||
|
||||
<div id='build-order-calendar'></div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js_load %}
|
||||
{{ block.super }}
|
||||
|
||||
<script type='text/javascript'>
|
||||
function loadOrderEvents(calendar) {
|
||||
|
||||
var start = startDate(calendar);
|
||||
var end = endDate(calendar);
|
||||
|
||||
clearEvents(calendar);
|
||||
|
||||
// Request build orders from the server within specified date range
|
||||
inventreeGet(
|
||||
'{% url "api-build-list" %}',
|
||||
{
|
||||
min_date: start,
|
||||
max_date: end,
|
||||
part_detail: true,
|
||||
},
|
||||
{
|
||||
success: function(response) {
|
||||
var prefix = '{% settings_value "BUILDORDER_REFERENCE_PREFIX" %}';
|
||||
|
||||
for (var idx = 0; idx < response.length; idx++) {
|
||||
|
||||
var order = response[idx];
|
||||
|
||||
var date = order.creation_date;
|
||||
|
||||
if (order.completion_date) {
|
||||
date = order.completion_date;
|
||||
} else if (order.target_date) {
|
||||
date = order.target_date;
|
||||
}
|
||||
|
||||
var title = `${prefix}${order.reference}`; //- ${order.quantity} x ${order.part_detail.name}`;
|
||||
|
||||
var color = '#4c68f5';
|
||||
|
||||
if (order.completed) {
|
||||
color = '#25c234';
|
||||
} else if (order.overdue) {
|
||||
color = '#c22525';
|
||||
}
|
||||
|
||||
var event = {
|
||||
title: title,
|
||||
start: date,
|
||||
end: date,
|
||||
url: `/build/${order.pk}/`,
|
||||
backgroundColor: color,
|
||||
};
|
||||
|
||||
calendar.addEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
var calendar = null;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var el = document.getElementById('build-order-calendar');
|
||||
|
||||
calendar = new FullCalendar.Calendar(el, {
|
||||
initialView: 'dayGridMonth',
|
||||
nowIndicator: true,
|
||||
aspectRatio: 2.5,
|
||||
datesSet: function() {
|
||||
loadOrderEvents(calendar);
|
||||
}
|
||||
});
|
||||
|
||||
calendar.render();
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
|
||||
$('#build-order-calendar').hide();
|
||||
$('#view-list').hide();
|
||||
|
||||
$('#view-calendar').click(function() {
|
||||
// Hide the list view, show the calendar view
|
||||
$("#build-table").hide();
|
||||
$("#view-calendar").hide();
|
||||
$(".fixed-table-pagination").hide();
|
||||
$(".columns-right").hide();
|
||||
$(".search").hide();
|
||||
|
||||
$("#build-order-calendar").show();
|
||||
$("#view-list").show();
|
||||
});
|
||||
|
||||
$("#view-list").click(function() {
|
||||
// Hide the calendar view, show the list view
|
||||
$("#build-order-calendar").hide();
|
||||
$("#view-list").hide();
|
||||
|
||||
$(".fixed-table-pagination").show();
|
||||
$(".columns-right").show();
|
||||
$(".search").show();
|
||||
$("#build-table").show();
|
||||
$("#view-calendar").show();
|
||||
});
|
||||
|
||||
$("#collapse-item-active").collapse().show();
|
||||
|
||||
$("#new-build").click(function() {
|
||||
|
@ -903,6 +903,7 @@ class BuildItemCreate(AjaxCreateView):
|
||||
|
||||
if self.build and self.part:
|
||||
available_items = self.build.availableStockItems(self.part, self.output)
|
||||
|
||||
form.fields['stock_item'].queryset = available_items
|
||||
|
||||
self.available_stock = form.fields['stock_item'].queryset.all()
|
||||
|
@ -111,6 +111,20 @@ class InvenTreeSetting(models.Model):
|
||||
'validator': bool
|
||||
},
|
||||
|
||||
'PART_TEMPLATE': {
|
||||
'name': _('Template'),
|
||||
'description': _('Parts are templates by default'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'PART_ASSEMBLY': {
|
||||
'name': _('Assembly'),
|
||||
'description': _('Parts can be assembled from other components by default'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'PART_COMPONENT': {
|
||||
'name': _('Component'),
|
||||
'description': _('Parts can be used as sub-components by default'),
|
||||
@ -139,6 +153,42 @@ class InvenTreeSetting(models.Model):
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'PART_VIRTUAL': {
|
||||
'name': _('Virtual'),
|
||||
'description': _('Parts are virtual by default'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'STOCK_ENABLE_EXPIRY': {
|
||||
'name': _('Stock Expiry'),
|
||||
'description': _('Enable stock expiry functionality'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'STOCK_ALLOW_EXPIRED_SALE': {
|
||||
'name': _('Sell Expired Stock'),
|
||||
'description': _('Allow sale of expired stock'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'STOCK_STALE_DAYS': {
|
||||
'name': _('Stock Stale Time'),
|
||||
'description': _('Number of days stock items are considered stale before expiring'),
|
||||
'default': 0,
|
||||
'units': _('days'),
|
||||
'validator': [int],
|
||||
},
|
||||
|
||||
'STOCK_ALLOW_EXPIRED_BUILD': {
|
||||
'name': _('Build Expired Stock'),
|
||||
'description': _('Allow building with expired stock'),
|
||||
'default': False,
|
||||
'validator': bool,
|
||||
},
|
||||
|
||||
'BUILDORDER_REFERENCE_PREFIX': {
|
||||
'name': _('Build Order Reference Prefix'),
|
||||
'description': _('Prefix value for build order reference'),
|
||||
@ -338,6 +388,12 @@ class InvenTreeSetting(models.Model):
|
||||
if setting.is_bool():
|
||||
value = InvenTree.helpers.str2bool(value)
|
||||
|
||||
if setting.is_int():
|
||||
try:
|
||||
value = int(value)
|
||||
except (ValueError, TypeError):
|
||||
value = backup_value
|
||||
|
||||
else:
|
||||
value = backup_value
|
||||
|
||||
@ -426,9 +482,7 @@ class InvenTreeSetting(models.Model):
|
||||
|
||||
return
|
||||
|
||||
# Check if a 'type' has been specified for this value
|
||||
if type(validator) == type:
|
||||
|
||||
# Boolean validator
|
||||
if validator == bool:
|
||||
# Value must "look like" a boolean value
|
||||
if InvenTree.helpers.is_bool(self.value):
|
||||
@ -439,6 +493,16 @@ class InvenTreeSetting(models.Model):
|
||||
'value': _('Value must be a boolean value')
|
||||
})
|
||||
|
||||
# Integer validator
|
||||
if validator == int:
|
||||
try:
|
||||
# Coerce into an integer value
|
||||
self.value = str(int(self.value))
|
||||
except (ValueError, TypeError):
|
||||
raise ValidationError({
|
||||
'value': _('Value must be an integer value'),
|
||||
})
|
||||
|
||||
def validate_unique(self, exclude=None):
|
||||
""" Ensure that the key:value pair is unique.
|
||||
In addition to the base validators, this ensures that the 'key'
|
||||
@ -479,6 +543,35 @@ class InvenTreeSetting(models.Model):
|
||||
|
||||
return InvenTree.helpers.str2bool(self.value)
|
||||
|
||||
def is_int(self):
|
||||
"""
|
||||
Check if the setting is required to be an integer value:
|
||||
"""
|
||||
|
||||
validator = InvenTreeSetting.get_setting_validator(self.key)
|
||||
|
||||
if validator == int:
|
||||
return True
|
||||
|
||||
if type(validator) in [list, tuple]:
|
||||
for v in validator:
|
||||
if v == int:
|
||||
return True
|
||||
|
||||
def as_int(self):
|
||||
"""
|
||||
Return the value of this setting converted to a boolean value.
|
||||
|
||||
If an error occurs, return the default value
|
||||
"""
|
||||
|
||||
try:
|
||||
value = int(self.value)
|
||||
except (ValueError, TypeError):
|
||||
value = self.default_value()
|
||||
|
||||
return value
|
||||
|
||||
|
||||
class PriceBreak(models.Model):
|
||||
"""
|
||||
|
@ -21,3 +21,11 @@ def currency_code_default():
|
||||
code = 'USD'
|
||||
|
||||
return code
|
||||
|
||||
|
||||
def stock_expiry_enabled():
|
||||
"""
|
||||
Returns True if the stock expiry feature is enabled
|
||||
"""
|
||||
|
||||
return InvenTreeSetting.get_setting('STOCK_ENABLE_EXPIRY')
|
||||
|
@ -31,7 +31,7 @@ class SettingsTest(TestCase):
|
||||
# There should be two settings objects in the database
|
||||
settings = InvenTreeSetting.objects.all()
|
||||
|
||||
self.assertEqual(settings.count(), 2)
|
||||
self.assertTrue(settings.count() >= 2)
|
||||
|
||||
instance_name = InvenTreeSetting.objects.get(pk=1)
|
||||
self.assertEqual(instance_name.key, 'INVENTREE_INSTANCE')
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -107,6 +107,13 @@ class POList(generics.ListCreateAPIView):
|
||||
except (ValueError, SupplierPart.DoesNotExist):
|
||||
pass
|
||||
|
||||
# Filter by 'date range'
|
||||
min_date = params.get('min_date', None)
|
||||
max_date = params.get('max_date', None)
|
||||
|
||||
if min_date is not None and max_date is not None:
|
||||
queryset = PurchaseOrder.filterByDate(queryset, min_date, max_date)
|
||||
|
||||
return queryset
|
||||
|
||||
filter_backends = [
|
||||
@ -293,6 +300,13 @@ class SOList(generics.ListCreateAPIView):
|
||||
except (Part.DoesNotExist, ValueError):
|
||||
pass
|
||||
|
||||
# Filter by 'date range'
|
||||
min_date = params.get('min_date', None)
|
||||
max_date = params.get('max_date', None)
|
||||
|
||||
if min_date is not None and max_date is not None:
|
||||
queryset = SalesOrder.filterByDate(queryset, min_date, max_date)
|
||||
|
||||
return queryset
|
||||
|
||||
filter_backends = [
|
||||
|
@ -121,6 +121,44 @@ class PurchaseOrder(Order):
|
||||
received_by: User that received the goods
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def filterByDate(queryset, min_date, max_date):
|
||||
"""
|
||||
Filter by 'minimum and maximum date range'
|
||||
|
||||
- Specified as min_date, max_date
|
||||
- Both must be specified for filter to be applied
|
||||
- Determine which "interesting" orders exist bewteen these dates
|
||||
|
||||
To be "interesting":
|
||||
- A "received" order where the received date lies within the date range
|
||||
- TODO: A "pending" order where the target date lies within the date range
|
||||
- TODO: An "overdue" order where the target date is in the past
|
||||
"""
|
||||
|
||||
date_fmt = '%Y-%m-%d' # ISO format date string
|
||||
|
||||
# Ensure that both dates are valid
|
||||
try:
|
||||
min_date = datetime.strptime(str(min_date), date_fmt).date()
|
||||
max_date = datetime.strptime(str(max_date), date_fmt).date()
|
||||
except (ValueError, TypeError):
|
||||
# Date processing error, return queryset unchanged
|
||||
return queryset
|
||||
|
||||
# Construct a queryset for "received" orders within the range
|
||||
received = Q(status=PurchaseOrderStatus.COMPLETE) & Q(complete_date__gte=min_date) & Q(complete_date__lte=max_date)
|
||||
|
||||
# TODO - Construct a queryset for "pending" orders within the range
|
||||
|
||||
# TODO - Construct a queryset for "overdue" orders within the range
|
||||
|
||||
flt = received
|
||||
|
||||
queryset = queryset.filter(flt)
|
||||
|
||||
return queryset
|
||||
|
||||
def __str__(self):
|
||||
|
||||
prefix = getSetting('PURCHASEORDER_REFERENCE_PREFIX')
|
||||
@ -301,6 +339,43 @@ class SalesOrder(Order):
|
||||
|
||||
OVERDUE_FILTER = Q(status__in=SalesOrderStatus.OPEN) & ~Q(target_date=None) & Q(target_date__lte=datetime.now().date())
|
||||
|
||||
@staticmethod
|
||||
def filterByDate(queryset, min_date, max_date):
|
||||
"""
|
||||
Filter by "minimum and maximum date range"
|
||||
|
||||
- Specified as min_date, max_date
|
||||
- Both must be specified for filter to be applied
|
||||
- Determine which "interesting" orders exist between these dates
|
||||
|
||||
To be "interesting":
|
||||
- A "completed" order where the completion date lies within the date range
|
||||
- A "pending" order where the target date lies within the date range
|
||||
- TODO: An "overdue" order where the target date is in the past
|
||||
"""
|
||||
|
||||
date_fmt = '%Y-%m-%d' # ISO format date string
|
||||
|
||||
# Ensure that both dates are valid
|
||||
try:
|
||||
min_date = datetime.strptime(str(min_date), date_fmt).date()
|
||||
max_date = datetime.strptime(str(max_date), date_fmt).date()
|
||||
except (ValueError, TypeError):
|
||||
# Date processing error, return queryset unchanged
|
||||
return queryset
|
||||
|
||||
# Construct a queryset for "completed" orders within the range
|
||||
completed = Q(status__in=SalesOrderStatus.COMPLETE) & Q(shipment_date__gte=min_date) & Q(shipment_date__lte=max_date)
|
||||
|
||||
# Construct a queryset for "pending" orders within the range
|
||||
pending = Q(status__in=SalesOrderStatus.OPEN) & ~Q(target_date=None) & Q(target_date__gte=min_date) & Q(target_date__lte=max_date)
|
||||
|
||||
# TODO: Construct a queryset for "overdue" orders within the range
|
||||
|
||||
queryset = queryset.filter(completed | pending)
|
||||
|
||||
return queryset
|
||||
|
||||
def __str__(self):
|
||||
|
||||
prefix = getSetting('SALESORDER_REFERENCE_PREFIX')
|
||||
|
@ -181,7 +181,7 @@ class SalesOrderSerializer(InvenTreeModelSerializer):
|
||||
|
||||
status_text = serializers.CharField(source='get_status_display', read_only=True)
|
||||
|
||||
overdue = serializers.BooleanField()
|
||||
overdue = serializers.BooleanField(required=False, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = SalesOrder
|
||||
|
@ -1,5 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load inventree_extras %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
@ -18,6 +19,12 @@ InvenTree | {% trans "Purchase Orders" %}
|
||||
<button class='btn btn-primary' type='button' id='po-create' title='{% trans "Create new purchase order" %}'>
|
||||
<span class='fas fa-plus-circle'></span> {% trans "New Purchase Order" %}</button>
|
||||
{% endif %}
|
||||
<button class='btn btn-default' type='button' id='view-calendar' title='{% trans "Display calendar view" %}'>
|
||||
<span class='fas fa-calendar-alt'></span>
|
||||
</button>
|
||||
<button class='btn btn-default' type='button' id='view-list' title='{% trans "Display list view" %}'>
|
||||
<span class='fas fa-th-list'></span>
|
||||
</button>
|
||||
<div class='filter-list' id='filter-list-purchaseorder'>
|
||||
<!-- An empty div in which the filter list will be constructed -->
|
||||
</div>
|
||||
@ -27,11 +34,124 @@ InvenTree | {% trans "Purchase Orders" %}
|
||||
<table class='table table-striped table-condensed po-table' data-toolbar='#table-buttons' id='purchase-order-table'>
|
||||
</table>
|
||||
|
||||
<div id='purchase-order-calendar'></div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js_load %}
|
||||
{{ block.super }}
|
||||
|
||||
<script type='text/javascript'>
|
||||
|
||||
function loadOrderEvents(calendar) {
|
||||
|
||||
var start = startDate(calendar);
|
||||
var end = endDate(calendar);
|
||||
|
||||
clearEvents(calendar);
|
||||
|
||||
// Request purchase orders from the server within specified date range
|
||||
inventreeGet(
|
||||
'{% url "api-po-list" %}',
|
||||
{
|
||||
supplier_detail: true,
|
||||
min_date: start,
|
||||
max_date: end,
|
||||
},
|
||||
{
|
||||
success: function(response) {
|
||||
var prefix = '{% settings_value "PURCHASEORDER_REFERENCE_PREFIX" %}';
|
||||
|
||||
for (var idx = 0; idx < response.length; idx++) {
|
||||
|
||||
var order = response[idx];
|
||||
|
||||
var date = order.creation_date;
|
||||
|
||||
if (order.complete_date) {
|
||||
date = order.complete_date;
|
||||
}
|
||||
|
||||
var title = `${prefix}${order.reference} - ${order.supplier_detail.name}`;
|
||||
|
||||
var color = '#4c68f5';
|
||||
|
||||
if (order.complete_date) {
|
||||
color = '#25c235';
|
||||
} else if (order.overdue) {
|
||||
color = '#c22525';
|
||||
} else {
|
||||
color = '#4c68f5';
|
||||
}
|
||||
|
||||
var event = {
|
||||
title: title,
|
||||
start: date,
|
||||
end: date,
|
||||
url: `/order/purchase-order/${order.pk}/`,
|
||||
backgroundColor: color,
|
||||
};
|
||||
|
||||
calendar.addEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
var calendar = null;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var el = document.getElementById('purchase-order-calendar');
|
||||
|
||||
calendar = new FullCalendar.Calendar(el, {
|
||||
initialView: 'dayGridMonth',
|
||||
nowIndicator: true,
|
||||
aspectRatio: 2.5,
|
||||
datesSet: function() {
|
||||
loadOrderEvents(calendar);
|
||||
}
|
||||
});
|
||||
|
||||
calendar.render();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
|
||||
$('#purchase-order-calendar').hide();
|
||||
$('#view-list').hide();
|
||||
|
||||
$('#view-calendar').click(function() {
|
||||
// Hide the list view, show the calendar view
|
||||
$("#purchase-order-table").hide();
|
||||
$("#view-calendar").hide();
|
||||
$(".fixed-table-pagination").hide();
|
||||
$(".columns-right").hide();
|
||||
$(".search").hide();
|
||||
$('#filter-list-salesorder').hide();
|
||||
|
||||
$("#purchase-order-calendar").show();
|
||||
$("#view-list").show();
|
||||
});
|
||||
|
||||
$("#view-list").click(function() {
|
||||
// Hide the calendar view, show the list view
|
||||
$("#purchase-order-calendar").hide();
|
||||
$("#view-list").hide();
|
||||
|
||||
$(".fixed-table-pagination").show();
|
||||
$(".columns-right").show();
|
||||
$(".search").show();
|
||||
$("#purchase-order-table").show();
|
||||
$('#filter-list-salesorder').show();
|
||||
$("#view-calendar").show();
|
||||
});
|
||||
|
||||
$("#po-create").click(function() {
|
||||
launchModalForm("{% url 'po-create' %}",
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load inventree_extras %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
@ -18,6 +19,12 @@ InvenTree | {% trans "Sales Orders" %}
|
||||
<button class='btn btn-primary' type='button' id='so-create' title='{% trans "Create new sales order" %}'>
|
||||
<span class='fas fa-plus-circle'></span> {% trans "New Sales Order" %}</button>
|
||||
{% endif %}
|
||||
<button class='btn btn-default' type='button' id='view-calendar' title='{% trans "Display calendar view" %}'>
|
||||
<span class='fas fa-calendar-alt'></span>
|
||||
</button>
|
||||
<button class='btn btn-default' type='button' id='view-list' title='{% trans "Display list view" %}'>
|
||||
<span class='fas fa-th-list'></span>
|
||||
</button>
|
||||
<div class='filter-list' id='filter-list-salesorder'>
|
||||
<!-- An empty div in which the filter list will be constructed -->
|
||||
</div>
|
||||
@ -27,11 +34,124 @@ InvenTree | {% trans "Sales Orders" %}
|
||||
<table class='table table-striped table-condensed po-table' data-toolbar='#table-buttons' id='sales-order-table'>
|
||||
</table>
|
||||
|
||||
<div id='sales-order-calendar'></div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js_load %}
|
||||
{{ block.super }}
|
||||
|
||||
<script type='text/javascript'>
|
||||
|
||||
function loadOrderEvents(calendar) {
|
||||
|
||||
var start = startDate(calendar);
|
||||
var end = endDate(calendar);
|
||||
|
||||
clearEvents(calendar);
|
||||
|
||||
// Request orders from the server within specified date range
|
||||
inventreeGet(
|
||||
'{% url "api-so-list" %}',
|
||||
{
|
||||
customer_detail: true,
|
||||
min_date: start,
|
||||
max_date: end,
|
||||
},
|
||||
{
|
||||
success: function(response) {
|
||||
|
||||
var prefix = '{% settings_value "SALESORDER_REFERENCE_PREFIX" %}';
|
||||
|
||||
for (var idx = 0; idx < response.length; idx++) {
|
||||
var order = response[idx];
|
||||
|
||||
var date = order.creation_date;
|
||||
|
||||
if (order.shipment_date) {
|
||||
date = order.shipment_date;
|
||||
} else if (order.target_date) {
|
||||
date = order.target_date;
|
||||
}
|
||||
|
||||
var title = `${prefix}${order.reference} - ${order.customer_detail.name}`;
|
||||
|
||||
// Default color is blue
|
||||
var color = '#4c68f5';
|
||||
|
||||
// Overdue orders are red
|
||||
if (order.overdue) {
|
||||
color = '#c22525';
|
||||
} else if (order.status == {{ SalesOrderStatus.SHIPPED }}) {
|
||||
color = '#25c235';
|
||||
}
|
||||
|
||||
var event = {
|
||||
title: title,
|
||||
start: date,
|
||||
end: date,
|
||||
url: `/order/sales-order/${order.pk}/`,
|
||||
backgroundColor: color,
|
||||
};
|
||||
|
||||
calendar.addEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
var calendar = null;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var calendarEl = document.getElementById('sales-order-calendar');
|
||||
calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
initialView: 'dayGridMonth',
|
||||
nowIndicator: true,
|
||||
aspectRatio: 2.5,
|
||||
datesSet: function() {
|
||||
loadOrderEvents(calendar);
|
||||
},
|
||||
});
|
||||
|
||||
calendar.render();
|
||||
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
|
||||
$("#sales-order-calendar").hide();
|
||||
$("#view-list").hide();
|
||||
|
||||
$('#view-calendar').click(function() {
|
||||
// Hide the list view, show the calendar view
|
||||
$("#sales-order-table").hide();
|
||||
$("#view-calendar").hide();
|
||||
$(".fixed-table-pagination").hide();
|
||||
$(".columns-right").hide();
|
||||
$(".search").hide();
|
||||
$('#filter-list-salesorder').hide();
|
||||
|
||||
$("#sales-order-calendar").show();
|
||||
$("#view-list").show();
|
||||
});
|
||||
|
||||
$("#view-list").click(function() {
|
||||
// Hide the calendar view, show the list view
|
||||
$("#sales-order-calendar").hide();
|
||||
$("#view-list").hide();
|
||||
|
||||
$(".fixed-table-pagination").show();
|
||||
$(".columns-right").show();
|
||||
$(".search").show();
|
||||
$("#sales-order-table").show();
|
||||
$('#filter-list-salesorder').show();
|
||||
$("#view-calendar").show();
|
||||
});
|
||||
|
||||
loadSalesOrderTable("#sales-order-table", {
|
||||
url: "{% url 'api-so-list' %}",
|
||||
});
|
||||
|
@ -24,6 +24,8 @@ from company.models import Company, SupplierPart
|
||||
from stock.models import StockItem, StockLocation
|
||||
from part.models import Part
|
||||
|
||||
from common.models import InvenTreeSetting
|
||||
|
||||
from . import forms as order_forms
|
||||
|
||||
from InvenTree.views import AjaxView, AjaxCreateView, AjaxUpdateView, AjaxDeleteView
|
||||
@ -1359,7 +1361,8 @@ class SalesOrderAllocationCreate(AjaxCreateView):
|
||||
try:
|
||||
line = SalesOrderLineItem.objects.get(pk=line_id)
|
||||
|
||||
queryset = form.fields['item'].queryset
|
||||
# Construct a queryset for allowable stock items
|
||||
queryset = StockItem.objects.filter(StockItem.IN_STOCK_FILTER)
|
||||
|
||||
# Ensure the part reference matches
|
||||
queryset = queryset.filter(part=line.part)
|
||||
@ -1369,6 +1372,10 @@ class SalesOrderAllocationCreate(AjaxCreateView):
|
||||
|
||||
queryset = queryset.exclude(pk__in=allocated)
|
||||
|
||||
# Exclude stock items which have expired
|
||||
if not InvenTreeSetting.get_setting('STOCK_ALLOW_EXPIRED_SALE'):
|
||||
queryset = queryset.exclude(StockItem.EXPIRED_FILTER)
|
||||
|
||||
form.fields['item'].queryset = queryset
|
||||
|
||||
# Hide the 'line' field
|
||||
|
@ -74,6 +74,7 @@
|
||||
level: 0
|
||||
lft: 0
|
||||
rght: 0
|
||||
default_expiry: 10
|
||||
|
||||
- model: part.part
|
||||
pk: 50
|
||||
@ -134,6 +135,7 @@
|
||||
fields:
|
||||
name: 'Red chair'
|
||||
variant_of: 10000
|
||||
IPN: "R.CH"
|
||||
trackable: true
|
||||
category: 7
|
||||
tree_id: 1
|
||||
|
@ -181,6 +181,7 @@ class EditPartForm(HelperForm):
|
||||
'keywords': 'fa-key',
|
||||
'link': 'fa-link',
|
||||
'IPN': 'fa-hashtag',
|
||||
'default_expiry': 'fa-stopwatch',
|
||||
}
|
||||
|
||||
bom_copy = forms.BooleanField(required=False,
|
||||
@ -228,11 +229,16 @@ class EditPartForm(HelperForm):
|
||||
'link',
|
||||
'default_location',
|
||||
'default_supplier',
|
||||
'default_expiry',
|
||||
'units',
|
||||
'minimum_stock',
|
||||
'component',
|
||||
'assembly',
|
||||
'is_template',
|
||||
'trackable',
|
||||
'purchaseable',
|
||||
'salable',
|
||||
'virtual',
|
||||
]
|
||||
|
||||
|
||||
|
85
InvenTree/part/migrations/0061_auto_20210103_2313.py
Normal file
85
InvenTree/part/migrations/0061_auto_20210103_2313.py
Normal file
@ -0,0 +1,85 @@
|
||||
# Generated by Django 3.0.7 on 2021-01-03 12:13
|
||||
|
||||
import InvenTree.fields
|
||||
import InvenTree.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import markdownx.models
|
||||
import mptt.fields
|
||||
import part.settings
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('stock', '0055_auto_20201117_1453'),
|
||||
('part', '0060_merge_20201112_1722'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='IPN',
|
||||
field=models.CharField(blank=True, help_text='Internal Part Number', max_length=100, null=True, validators=[InvenTree.validators.validate_part_ipn], verbose_name='IPN'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='assembly',
|
||||
field=models.BooleanField(default=part.settings.part_assembly_default, help_text='Can this part be built from other parts?', verbose_name='Assembly'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='category',
|
||||
field=mptt.fields.TreeForeignKey(blank=True, help_text='Part category', null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='parts', to='part.PartCategory', verbose_name='Category'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='default_location',
|
||||
field=mptt.fields.TreeForeignKey(blank=True, help_text='Where is this item normally stored?', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='default_parts', to='stock.StockLocation', verbose_name='Default Location'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='description',
|
||||
field=models.CharField(help_text='Part description', max_length=250, verbose_name='Description'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='is_template',
|
||||
field=models.BooleanField(default=part.settings.part_template_default, help_text='Is this part a template part?', verbose_name='Is Template'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='keywords',
|
||||
field=models.CharField(blank=True, help_text='Part keywords to improve visibility in search results', max_length=250, null=True, verbose_name='Keywords'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='link',
|
||||
field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='name',
|
||||
field=models.CharField(help_text='Part name', max_length=100, validators=[InvenTree.validators.validate_part_name], verbose_name='Name'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='notes',
|
||||
field=markdownx.models.MarkdownxField(blank=True, help_text='Part notes - supports Markdown formatting', null=True, verbose_name='Notes'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='revision',
|
||||
field=models.CharField(blank=True, help_text='Part revision or version number', max_length=100, null=True, verbose_name='Revision'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='variant_of',
|
||||
field=models.ForeignKey(blank=True, help_text='Is this part a variant of another part?', limit_choices_to={'active': True, 'is_template': True}, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='variants', to='part.Part', verbose_name='Variant Of'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='virtual',
|
||||
field=models.BooleanField(default=part.settings.part_virtual_default, help_text='Is this a virtual part, such as a software product or license?', verbose_name='Virtual'),
|
||||
),
|
||||
]
|
36
InvenTree/part/migrations/0061_auto_20210104_2331.py
Normal file
36
InvenTree/part/migrations/0061_auto_20210104_2331.py
Normal file
@ -0,0 +1,36 @@
|
||||
# Generated by Django 3.0.7 on 2021-01-04 12:31
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('company', '0031_auto_20210103_2215'),
|
||||
('part', '0060_merge_20201112_1722'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='part',
|
||||
name='default_expiry',
|
||||
field=models.PositiveIntegerField(default=0, help_text='Expiry time (in days) for stock items of this part', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Default Expiry'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='default_supplier',
|
||||
field=models.ForeignKey(blank=True, help_text='Default supplier part', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='default_parts', to='company.SupplierPart', verbose_name='Default Supplier'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='minimum_stock',
|
||||
field=models.PositiveIntegerField(default=0, help_text='Minimum allowed stock level', validators=[django.core.validators.MinValueValidator(0)], verbose_name='Minimum Stock'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='part',
|
||||
name='units',
|
||||
field=models.CharField(blank=True, default='', help_text='Stock keeping units for this part', max_length=20, null=True, verbose_name='Units'),
|
||||
),
|
||||
]
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user