Commit 0355d5c9 authored by Romain Courteaud's avatar Romain Courteaud

BUT [erp5_web_but] First release

parent 2ead9bd9
......@@ -54,6 +54,7 @@
<option>Drive App</option>
<option>Jabber Client</option>
<option>Travel Expense</option>
<option>But</option>
</select>
</div>
</div>
......
......@@ -231,7 +231,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>967.13490.46878.24849</string> </value>
<value> <string>967.44748.35225.6109</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -249,7 +249,7 @@
</tuple>
<state>
<tuple>
<float>1525423502.47</float>
<float>1528749405.07</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -7,6 +7,11 @@
var origin_url = (window.location.origin + window.location.pathname).replace(
"officejs_export/", ""),
application_dict = {
"But": {
"url": "world_cup_2018/",
"cache": "world_cup_2018.appcache",
"no_installer": true
},
"Text Editor": {
"url": "officejs_text_editor/",
"cache": "gadget_officejs_text_editor.appcache"
......
......@@ -254,7 +254,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>967.36177.43828.39338</string> </value>
<value> <string>968.10225.7262.19507</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -272,7 +272,7 @@
</tuple>
<state>
<tuple>
<float>1526388949.99</float>
<float>1528749299.15</float>
<string>UTC</string>
</tuple>
</state>
......
{
"stadiums": [
{
"id": 1,
"name": "Luzhniki Stadium",
"city": "Moscow",
"lat": 55.715765,
"lng": 37.5515217,
"image": "https://upload.wikimedia.org/wikipedia/commons/e/e6/Luzhniki_Stadium%2C_Moscow.jpg"
},
{
"id": 2,
"name": "Otkrytiye Arena",
"city": "Moscow",
"lat": 55.817765,
"lng": 37.440363,
"image": "https://upload.wikimedia.org/wikipedia/commons/5/50/Stadium_Spartak_in_Moscow.jpg"
},
{
"id": 3,
"name": "Krestovsky Stadium",
"city": "Saint Petersburg",
"lat": 59.972740,
"lng": 30.221408,
"image": "https://upload.wikimedia.org/wikipedia/commons/a/ad/Spb_06-2017_img40_Krestovsky_Stadium.jpg"
},
{
"id": 4,
"name": "Kaliningrad Stadium",
"city": "Kaliningrad",
"lat": 54.698157,
"lng": 20.533859,
"image": "https://upload.wikimedia.org/wikipedia/commons/a/a4/Kaliningrad_stadium_-_2018-04-07.jpg"
},
{
"id": 5,
"name": "Kazan Arena",
"city": "Kazan",
"lat": 55.820983,
"lng": 49.160966,
"image": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Kazan_Arena_08-2016.jpg"
},
{
"id": 6,
"name": "Nizhny Novgorod Stadium",
"city": "Nizhny Novgorod",
"lat": 56.337287,
"lng": 43.963251,
"image": "https://upload.wikimedia.org/wikipedia/commons/9/90/Nizhny_Novgorod_Stadium_%28March_2018%29.jpg"
},
{
"id": 7,
"name": "Cosmos Arena",
"city": "Samara",
"lat": 53.278146,
"lng": 50.238854,
"image": "http://img.fifa.com/image/upload/t_l4/d0mymt1ubl2pypmu3gn3.jpg"
},
{
"id": 8,
"name": "Volgograd Arena",
"city": "Volgograd",
"lat": 48.734195,
"lng": 44.548345,
"image": "https://upload.wikimedia.org/wikipedia/commons/6/61/Construction_of_Volgograd_Arena_inside_04.jpg"
},
{
"id": 9,
"name": "Mordovia Arena",
"city": "Saransk",
"lat": 54.181795,
"lng": 45.203851,
"image": "https://upload.wikimedia.org/wikipedia/commons/c/c9/%D0%A1%D1%82%D0%B0%D0%B4%D0%B8%D0%BE%D0%BD_Mordovia_arena.jpg"
},
{
"id": 10,
"name": "Rostov Arena",
"city": "Rostov-on-Don",
"lat": 47.209581,
"lng": 39.738424,
"image": "https://upload.wikimedia.org/wikipedia/commons/9/94/Rostov-Arens_%28april_2018%29_01.jpg"
},
{
"id": 11,
"name": "Fisht Olympic Stadium",
"city": "Sochi",
"lat": 43.402011,
"lng": 39.955709,
"image": "https://upload.wikimedia.org/wikipedia/commons/5/55/Fisht_Stadium_in_January_2018.jpg"
},
{
"id": 12,
"name": "Central Stadium",
"city": "Yekaterinburg",
"lat": 56.832490,
"lng": 60.573585,
"image": "https://upload.wikimedia.org/wikipedia/commons/d/d2/Estadio_Central_%28Ekaterinburg-arena%29.jpg"
}
],
"tvchannels": [
{
"id": 1,
"name": "DR1",
"icon": "https://upload.wikimedia.org/wikipedia/commons/8/88/DR1_logo_2013.svg",
"country": "Denmark",
"iso2": "dk",
"lang": ["da"]
},
{
"id": 2,
"name": "TV2",
"icon": "https://upload.wikimedia.org/wikipedia/commons/8/85/Danish_TV_2_logo.png",
"country": "Denmark",
"iso2": "dk",
"lang": ["da"]
},
{
"id": 3,
"name": "BBC UK",
"icon": "https://upload.wikimedia.org/wikipedia/commons/e/eb/BBC.svg",
"country": "UK",
"iso2": "en",
"lang": ["en"]
},
{
"id": 4,
"name": "ITV UK",
"icon": "https://upload.wikimedia.org/wikipedia/en/9/92/ITV_logo_2013.svg",
"country": "UK",
"iso2": "en",
"lang": ["en"]
},
{
"id": 5,
"name": "ITV4 UK",
"icon": "https://upload.wikimedia.org/wikipedia/en/9/92/ITV_logo_2013.svg",
"country": "UK",
"iso2": "en",
"lang": ["en"]
},
{
"id": 6,
"name": "Cuatro",
"icon": "https://upload.wikimedia.org/wikipedia/commons/f/f8/Logotipo_de_Cuatro.svg",
"country": "Spain",
"iso2": "es",
"lang": ["es"]
},
{
"id": 7,
"name": "Telecinco",
"icon": "https://upload.wikimedia.org/wikipedia/commons/7/75/Telecinco_2012.png",
"country": "Spain",
"iso2": "es",
"lang": ["es"]
},
{
"id": 8,
"name": "Globo",
"icon": "https://upload.wikimedia.org/wikipedia/pt/2/22/Logotipo_da_Rede_Globo.png",
"country": "Brazil",
"iso2": "br",
"lang": ["pt-br"]
},
{
"id": 9,
"name": "SportTV",
"icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/SporTV_2017_logo.svg/692px-SporTV_2017_logo.svg.png",
"country": "Brazil",
"iso2": "br",
"lang": ["pt-br"]
},
{
"id": 10,
"name": "SportTV2",
"icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/SporTV_2_2017_logo.svg/664px-SporTV_2_2017_logo.svg.png",
"country": "Brazil",
"iso2": "br",
"lang": ["pt-br"]
},
{
"id": 11,
"name": "SportTV3",
"icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/SporTV_3_2017_logo.svg/703px-SporTV_3_2017_logo.svg.png",
"country": "Brazil",
"iso2": "br",
"lang": ["pt-br"]
}
],
"teams": [
{
"id": 1,
"name": "Russia",
"fifaCode": "RUS",
"iso2": "ru",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/f/f3/Flag_of_Russia.svg/900px-Flag_of_Russia.png",
"emoji": "flag-ru",
"emojiString": "🇷🇺"
},
{
"id": 2,
"name": "Saudi Arabia",
"fifaCode": "KSA",
"iso2": "sa",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Flag_of_Saudi_Arabia.svg/750px-Flag_of_Saudi_Arabia.png",
"emoji": "flag-sa",
"emojiString": "🇸🇦"
},
{
"id": 3,
"name": "Egypt",
"fifaCode": "EGY",
"iso2": "eg",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Flag_of_Egypt.svg/900px-Flag_of_Egypt.png",
"emoji": "flag-eg",
"emojiString": "🇪🇬"
},
{
"id": 4,
"name": "Uruguay",
"fifaCode": "URU",
"iso2": "uy",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Flag_of_Uruguay.svg/900px-Flag_of_Uruguay.png",
"emoji": "flag-uy",
"emojiString": "🇺🇾"
},
{
"id": 5,
"name": "Portugal",
"fifaCode": "POR",
"iso2": "pt",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Flag_of_Portugal.svg/600px-Flag_of_Portugal.png",
"emoji": "flag-pt",
"emojiString": "🇵🇹"
},
{
"id": 6,
"name": "Spain",
"fifaCode": "ESP",
"iso2": "es",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/9/9a/Flag_of_Spain.svg/750px-Flag_of_Spain.png",
"emoji": "flag-es",
"emojiString": "🇪🇸"
},
{
"id": 7,
"name": "Morocco",
"fifaCode": "MAR",
"iso2": "ma",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Flag_of_Morocco.svg/900px-Flag_of_Morocco.png",
"emoji": "flag-ma",
"emojiString": "🇲🇦"
},
{
"id": 8,
"name": "Iran",
"fifaCode": "IRN",
"iso2": "ir",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Flag_of_Iran.svg/630px-Flag_of_Iran.png",
"emoji": "flag-ir",
"emojiString": "🇮🇷"
},
{
"id": 9,
"name": "France",
"fifaCode": "FRA",
"iso2": "fr",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/900px-Flag_of_France.png",
"emoji": "flag-fr",
"emojiString": "🇫🇷"
},
{
"id": 10,
"name": "Australia",
"fifaCode": "AUS",
"iso2": "au",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Flag_of_Australia_%28converted%29.svg/1280px-Flag_of_Australia_%28converted%29.png",
"emoji": "flag-au",
"emojiString": "🇦🇺"
},
{
"id": 11,
"name": "Peru",
"fifaCode": "PER",
"iso2": "pe",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Flag_of_Peru_%28state%29.svg/900px-Flag_of_Peru_%28state%29.png",
"emoji": "flag-pe",
"emojiString": "🇵🇪"
},
{
"id": 12,
"name": "Denmark",
"fifaCode": "DEN",
"iso2": "dk",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Flag_of_Denmark.svg/740px-Flag_of_Denmark.png",
"emoji": "flag-dk",
"emojiString": "🇩🇰"
},
{
"id": 13,
"name": "Argentina",
"fifaCode": "ARG",
"iso2": "ar",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_Argentina.svg/800px-Flag_of_Argentina.png",
"emoji": "flag-ar",
"emojiString": "🇦🇷"
},
{
"id": 14,
"name": "Iceland",
"fifaCode": "ISL",
"iso2": "is",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Flag_of_Iceland.svg/800px-Flag_of_Iceland.png",
"emoji": "flag-is",
"emojiString": "🇮🇸"
},
{
"id": 15,
"name": "Croatia",
"fifaCode": "CRO",
"iso2": "hr",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Flag_of_Croatia.svg/800px-Flag_of_Croatia.png",
"emoji": "flag-hr",
"emojiString": "🇭🇷"
},
{
"id": 16,
"name": "Nigeria",
"fifaCode": "NGA",
"iso2": "ng",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Flag_of_Nigeria.svg/800px-Flag_of_Nigeria.png",
"emoji": "flag-ng",
"emojiString": "🇳🇬"
},
{
"id": 17,
"name": "Brazil",
"fifaCode": "BRA",
"iso2": "br",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/0/05/Flag_of_Brazil.svg/720px-Flag_of_Brazil.png",
"emoji": "flag-br",
"emojiString": "🇧🇷"
},
{
"id": 18,
"name": "Switzerland",
"fifaCode": "SUI",
"iso2": "ch",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Flag_of_Switzerland_%28Pantone%29.svg/320px-Flag_of_Switzerland_%28Pantone%29.png",
"emoji": "flag-ch",
"emojiString": "🇨🇭"
},
{
"id": 19,
"name": "Costa Rica",
"fifaCode": "CRC",
"iso2": "cr",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Flag_of_Costa_Rica_%28state%29.svg/833px-Flag_of_Costa_Rica_%28state%29.png",
"emoji": "flag-cr",
"emojiString": "🇨🇷"
},
{
"id": 20,
"name": "Serbia",
"fifaCode": "SRB",
"iso2": "rs",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Flag_of_Serbia.svg/1350px-Flag_of_Serbia.png",
"emoji": "flag-rs",
"emojiString": "🇷🇸"
},
{
"id": 21,
"name": "Germany",
"fifaCode": "GER",
"iso2": "de",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/b/ba/Flag_of_Germany.svg/800px-Flag_of_Germany.png",
"emoji": "flag-de",
"emojiString": "🇩🇪"
},
{
"id": 22,
"name": "Mexico",
"fifaCode": "MEX",
"iso2": "mx",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Flag_of_Mexico.svg/800px-Flag_of_Mexico.png",
"emoji": "flag-mx",
"emojiString": "🇲🇽"
},
{
"id": 23,
"name": "Sweden",
"fifaCode": "SWE",
"iso2": "se",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/4/4c/Flag_of_Sweden.svg/1600px-Flag_of_Sweden.png",
"emoji": "flag-se",
"emojiString": "🇸🇪"
},
{
"id": 24,
"name": "South Korea",
"fifaCode": "KOR",
"iso2": "kr",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/09/Flag_of_South_Korea.svg/900px-Flag_of_South_Korea.png",
"emoji": "flag-kr",
"emojiString": "🇰🇷"
},
{
"id": 25,
"name": "Belgium",
"fifaCode": "BEL",
"iso2": "be",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/Flag_of_Belgium.svg/450px-Flag_of_Belgium.png",
"emoji": "flag-be",
"emojiString": "🇧🇪"
},
{
"id": 26,
"name": "Panama",
"fifaCode": "PAN",
"iso2": "pa",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Flag_of_Panama.svg/450px-Flag_of_Panama.png",
"emoji": "flag-pa",
"emojiString": "🇵🇦"
},
{
"id": 27,
"name": "Tunisia",
"fifaCode": "TUN",
"iso2": "tn",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Flag_of_Tunisia.svg/1200px-Flag_of_Tunisia.png",
"emoji": "flag-tn",
"emojiString": "🇹🇳"
},
{
"id": 28,
"name": "England",
"fifaCode": "ENG",
"iso2": "gb-eng",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/b/be/Flag_of_England.svg/800px-Flag_of_England.png",
"emoji": "flag-england",
"emojiString": "🏴󠁧󠁢󠁥󠁮󠁧󠁿"
},
{
"id": 29,
"name": "Poland",
"fifaCode": "POL",
"iso2": "pl",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/1/12/Flag_of_Poland.svg/1280px-Flag_of_Poland.png",
"emoji": "flag-pl",
"emojiString": "🇵🇱"
},
{
"id": 30,
"name": "Senegal",
"fifaCode": "SEN",
"iso2": "sn",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Flag_of_Senegal.svg/900px-Flag_of_Senegal.svg.png",
"emoji": "flag-sn",
"emojiString": "🇸🇳"
},
{
"id": 31,
"name": "Colombia",
"fifaCode": "COL",
"iso2": "co",
"flag": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Flag_of_Colombia.svg/450px-Flag_of_Colombia.png",
"emoji": "flag-co",
"emojiString": "🇨🇴"
},
{
"id": 32,
"name": "Japan",
"fifaCode": "JPN",
"iso2": "jp",
"flag": "https://upload.wikimedia.org/wikipedia/en/thumb/9/9e/Flag_of_Japan.svg/900px-Flag_of_Japan.png",
"emoji": "flag-jp",
"emojiString": "🇯🇵"
}
],
"groups": {
"a": {
"name": "Group A",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 1,
"type": "group",
"home_team": 1,
"away_team": 2,
"home_result": null,
"away_result": null,
"date": "2018-06-14T18:00:00+03:00",
"stadium": 1,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 2,
"type": "group",
"home_team": 3,
"away_team": 4,
"home_result": null,
"away_result": null,
"date": "2018-06-15T17:00:00+05:00",
"stadium": 12,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 17,
"type": "group",
"home_team": 1,
"away_team": 3,
"home_result": null,
"away_result": null,
"date": "2018-06-19T21:00:00+03:00",
"stadium": 3,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 18,
"type": "group",
"home_team": 4,
"away_team": 2,
"home_result": null,
"away_result": null,
"date": "2018-06-20T18:00:00+03:00",
"stadium": 10,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 33,
"type": "group",
"home_team": 4,
"away_team": 1,
"home_result": null,
"away_result": null,
"date": "2018-06-25T18:00:00+04:00",
"stadium": 7,
"channels": [4,6],
"finished": false,
"matchday": 3
},
{
"name": 34,
"type": "group",
"home_team": 2,
"away_team": 3,
"home_result": null,
"away_result": null,
"date": "2018-06-25T17:00:00+03:00",
"stadium": 8,
"channels": [5,6],
"finished": false,
"matchday": 3
}
]
},
"b": {
"name": "Group B",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 3,
"type": "group",
"home_team": 5,
"away_team": 6,
"home_result": null,
"away_result": null,
"date": "2018-06-15T21:00:00+03:00",
"stadium": 11,
"channels": [3,7],
"finished": false,
"matchday": 1
},
{
"name": 4,
"type": "group",
"home_team": 7,
"away_team": 8,
"home_result": null,
"away_result": null,
"date": "2018-06-15T18:00:00+03:00",
"stadium": 3,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 19,
"type": "group",
"home_team": 5,
"away_team": 7,
"home_result": null,
"away_result": null,
"date": "2018-06-20T15:00:00+03:00",
"stadium": 1,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 20,
"type": "group",
"home_team": 8,
"away_team": 6,
"home_result": null,
"away_result": null,
"date": "2018-06-20T21:00:00+03:00",
"stadium": 5,
"channels": [4,7],
"finished": false,
"matchday": 2
},
{
"name": 35,
"type": "group",
"home_team": 8,
"away_team": 5,
"home_result": null,
"away_result": null,
"date": "2018-06-25T21:00:00+03:00",
"stadium": 9,
"channels": [3,6],
"finished": false,
"matchday": 3
},
{
"name": 36,
"type": "group",
"home_team": 6,
"away_team": 7,
"home_result": null,
"away_result": null,
"date": "2018-06-25T20:00:00+02:00",
"stadium": 4,
"channels": [3,7],
"finished": false,
"matchday": 3
}
]
},
"c": {
"name": "Group C",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 5,
"type": "group",
"home_team": 9,
"away_team": 10,
"home_result": null,
"away_result": null,
"date": "2018-06-16T13:00:00+03:00",
"stadium": 5,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 6,
"type": "group",
"home_team": 11,
"away_team": 12,
"home_result": null,
"away_result": null,
"date": "2018-06-16T19:00:00+03:00",
"stadium": 9,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 21,
"type": "group",
"home_team": 9,
"away_team": 11,
"home_result": null,
"away_result": null,
"date": "2018-06-21T20:00:00+05:00",
"stadium": 12,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 22,
"type": "group",
"home_team": 12,
"away_team": 10,
"home_result": null,
"away_result": null,
"date": "2018-06-21T16:00:00+04:00",
"stadium": 7,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 37,
"type": "group",
"home_team": 12,
"away_team": 9,
"home_result": null,
"away_result": null,
"date": "2018-06-26T17:00:00+03:00",
"stadium": 1,
"channels": [4,6],
"finished": false,
"matchday": 3
},
{
"name": 38,
"type": "group",
"home_team": 10,
"away_team": 11,
"home_result": null,
"away_result": null,
"date": "2018-06-26T17:00:00+02:00",
"stadium": 11,
"channels": [5,6],
"finished": false,
"matchday": 3
}
]
},
"d": {
"name": "Group D",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 7,
"type": "group",
"home_team": 13,
"away_team": 14,
"home_result": null,
"away_result": null,
"date": "2018-06-16T16:00:00+03:00",
"stadium": 2,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 8,
"type": "group",
"home_team": 15,
"away_team": 16,
"home_result": null,
"away_result": null,
"date": "2018-06-16T21:00:00+02:00",
"stadium": 4,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 23,
"type": "group",
"home_team": 13,
"away_team": 15,
"home_result": null,
"away_result": null,
"date": "2018-06-21T21:00:00+03:00",
"stadium": 6,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 24,
"type": "group",
"home_team": 16,
"away_team": 14,
"home_result": null,
"away_result": null,
"date": "2018-06-22T18:00:00+03:00",
"stadium": 8,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 39,
"type": "group",
"home_team": 16,
"away_team": 13,
"home_result": null,
"away_result": null,
"date": "2018-06-26T21:00:00+03:00",
"stadium": 3,
"channels": [3,6],
"finished": false,
"matchday": 3
},
{
"name": 40,
"type": "group",
"home_team": 14,
"away_team": 15,
"home_result": null,
"away_result": null,
"date": "2018-06-26T21:00:00+03:00",
"stadium": 10,
"channels": [3,6],
"finished": false,
"matchday": 3
}
]
},
"e": {
"name": "Group E",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 9,
"type": "group",
"home_team": 17,
"away_team": 18,
"home_result": null,
"away_result": null,
"date": "2018-06-17T21:00:00+03:00",
"stadium": 10,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 10,
"type": "group",
"home_team": 19,
"away_team": 20,
"home_result": null,
"away_result": null,
"date": "2018-06-17T16:00:00+04:00",
"stadium": 7,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 25,
"type": "group",
"home_team": 17,
"away_team": 19,
"home_result": null,
"away_result": null,
"date": "2018-06-22T15:00:00+03:00",
"stadium": 3,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 26,
"type": "group",
"home_team": 20,
"away_team": 18,
"home_result": null,
"away_result": null,
"date": "2018-06-22T20:00:00+02:00",
"stadium": 4,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 41,
"type": "group",
"home_team": 20,
"away_team": 17,
"home_result": null,
"away_result": null,
"date": "2018-06-27T21:00:00+03:00",
"stadium": 2,
"channels": [4,6],
"finished": false,
"matchday": 3
},
{
"name": 42,
"type": "group",
"home_team": 18,
"away_team": 19,
"home_result": null,
"away_result": null,
"date": "2018-06-27T21:00:00+03:00",
"stadium": 6,
"channels": [5,6],
"finished": false,
"matchday": 3
}
]
},
"f": {
"name": "Group F",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 11,
"type": "group",
"home_team": 21,
"away_team": 22,
"home_result": null,
"away_result": null,
"date": "2018-06-17T18:00:00+03:00",
"stadium": 1,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 12,
"type": "group",
"home_team": 23,
"away_team": 24,
"home_result": null,
"away_result": null,
"date": "2018-06-18T15:00:00+03:00",
"stadium": 6,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 27,
"type": "group",
"home_team": 21,
"away_team": 23,
"home_result": null,
"away_result": null,
"date": "2018-06-23T21:00:00+03:00",
"stadium": 11,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 28,
"type": "group",
"home_team": 24,
"away_team": 22,
"home_result": null,
"away_result": null,
"date": "2018-06-23T18:00:00+03:00",
"stadium": 10,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 43,
"type": "group",
"home_team": 24,
"away_team": 21,
"home_result": null,
"away_result": null,
"date": "2018-06-27T17:00:00+03:00",
"stadium": 5,
"channels": [3,6],
"finished": false,
"matchday": 3
},
{
"name": 44,
"type": "group",
"home_team": 22,
"away_team": 23,
"home_result": null,
"away_result": null,
"date": "2018-06-27T19:00:00+05:00",
"stadium": 12,
"channels": [3,6],
"finished": false,
"matchday": 3
}
]
},
"g": {
"name": "Group G",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 13,
"type": "group",
"home_team": 25,
"away_team": 26,
"home_result": null,
"away_result": null,
"date": "2018-06-18T18:00:00+03:00",
"stadium": 11,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 14,
"type": "group",
"home_team": 27,
"away_team": 28,
"home_result": null,
"away_result": null,
"date": "2018-06-18T21:00:00+03:00",
"stadium": 8,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 29,
"type": "group",
"home_team": 25,
"away_team": 27,
"home_result": null,
"away_result": null,
"date": "2018-06-23T15:00:00+03:00",
"stadium": 2,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 30,
"type": "group",
"home_team": 28,
"away_team": 26,
"home_result": null,
"away_result": null,
"date": "2018-06-24T15:00:00+03:00",
"stadium": 6,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 45,
"type": "group",
"home_team": 28,
"away_team": 25,
"home_result": null,
"away_result": null,
"date": "2018-06-28T20:00:00+02:00",
"stadium": 4,
"channels": [4,6],
"finished": false,
"matchday": 3
},
{
"name": 46,
"type": "group",
"home_team": 26,
"away_team": 27,
"home_result": null,
"away_result": null,
"date": "2018-06-28T21:00:00+03:00",
"stadium": 9,
"channels": [5,6],
"finished": false,
"matchday": 3
}
]
},
"h": {
"name": "Group H",
"winner": null,
"runnerup": null,
"matches": [
{
"name": 15,
"type": "group",
"home_team": 29,
"away_team": 30,
"home_result": null,
"away_result": null,
"date": "2018-06-19T18:00:00+03:00",
"stadium": 2,
"channels": [4,6],
"finished": false,
"matchday": 1
},
{
"name": 16,
"type": "group",
"home_team": 31,
"away_team": 32,
"home_result": null,
"away_result": null,
"date": "2018-06-19T15:00:00+03:00",
"stadium": 9,
"channels": [3,6],
"finished": false,
"matchday": 1
},
{
"name": 31,
"type": "group",
"home_team": 29,
"away_team": 31,
"home_result": null,
"away_result": null,
"date": "2018-06-24T20:00:00+05:00",
"stadium": 5,
"channels": [4,6],
"finished": false,
"matchday": 2
},
{
"name": 32,
"type": "group",
"home_team": 32,
"away_team": 30,
"home_result": null,
"away_result": null,
"date": "2018-06-24T21:00:00+03:00",
"stadium": 12,
"channels": [3,6],
"finished": false,
"matchday": 2
},
{
"name": 47,
"type": "group",
"home_team": 32,
"away_team": 29,
"home_result": null,
"away_result": null,
"date": "2018-06-28T17:00:00+03:00",
"stadium": 8,
"channels": [3,6],
"finished": false,
"matchday": 3
},
{
"name": 48,
"type": "group",
"home_team": 30,
"away_team": 31,
"home_result": null,
"away_result": null,
"date": "2018-06-28T18:00:00+04:00",
"stadium": 7,
"channels": [3,6],
"finished": false,
"matchday": 3
}
]
}
},
"knockout": {
"round_16": {
"name": "Round of 16",
"matches": [
{
"name": 49,
"type": "qualified",
"home_team": "winner_a",
"away_team": "runner_b",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-06-30T17:00:00+03:00",
"stadium": 11,
"channels": [4],
"finished": false,
"matchday": 4
},
{
"name": 50,
"type": "qualified",
"home_team": "winner_c",
"away_team": "runner_d",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-06-30T21:00:00+03:00",
"stadium": 5,
"channels": [4,6],
"finished": false,
"matchday": 4
},
{
"name": 51,
"type": "qualified",
"home_team": "winner_b",
"away_team": "runner_a",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-01T17:00:00+03:00",
"stadium": 1,
"channels": [3],
"finished": false,
"matchday": 4
},
{
"name": 52,
"type": "qualified",
"home_team": "winner_d",
"away_team": "runner_c",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-01T21:00:00+03:00",
"stadium": 6,
"channels": [4,6],
"finished": false,
"matchday": 4
},
{
"name": 53,
"type": "qualified",
"home_team": "winner_e",
"away_team": "runner_f",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-02T18:00:00+04:00",
"stadium": 7,
"channels": [3,6],
"finished": false,
"matchday": 4
},
{
"name": 54,
"type": "qualified",
"home_team": "winner_g",
"away_team": "runner_h",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-02T21:00:00+03:00",
"stadium": 10,
"channels": [3,6],
"finished": false,
"matchday": 4
},
{
"name": 55,
"type": "qualified",
"home_team": "winner_f",
"away_team": "runner_e",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-03T17:00:00+03:00",
"stadium": 3,
"channels": [4,6],
"finished": false,
"matchday": 4
},
{
"name": 56,
"type": "qualified",
"home_team": "winner_h",
"away_team": "runner_g",
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-03T21:00:00+03:00",
"stadium": 2,
"channels": [3,6],
"finished": false,
"matchday": 4
}
]
},
"round_8": {
"name": "Quarter-finals",
"matches": [
{
"name": 57,
"type": "winner",
"home_team": 49,
"away_team": 50,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-06T17:00:00+03:00",
"stadium": 6,
"channels": [3],
"finished": false,
"matchday": 5
},
{
"name": 58,
"type": "winner",
"home_team": 53,
"away_team": 54,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-06T21:00:00+03:00",
"stadium": 5,
"channels": [3],
"finished": false,
"matchday": 5
},
{
"name": 59,
"type": "winner",
"home_team": 51,
"away_team": 52,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-07T21:00:00+03:00",
"stadium": 11,
"channels": [4],
"finished": false,
"matchday": 5
},
{
"name": 60,
"type": "winner",
"home_team": 55,
"away_team": 56,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-07T18:00:00+04:00",
"stadium": 7,
"channels": [4],
"finished": false,
"matchday": 5
}
]
},
"round_4": {
"name": "Semi-finals",
"matches": [
{
"name": 61,
"type": "winner",
"home_team": 57,
"away_team": 58,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-10T21:00:00+03:00",
"stadium": 3,
"channels": [4],
"finished": false,
"matchday": 6
},
{
"name": 62,
"type": "winner",
"home_team": 59,
"away_team": 60,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-11T21:00:00+03:00",
"stadium": 1,
"channels": [3],
"finished": false,
"matchday": 6
}
]
},
"round_2_loser": {
"name": "Third place play-off",
"matches": [
{
"name": 63,
"type": "loser",
"home_team": 61,
"away_team": 62,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-14T17:00:00+03:00",
"stadium": 3,
"channels": [4],
"finished": false,
"matchday": 7
}
]
},
"round_2": {
"name": "Final",
"matches": [
{
"name": 64,
"type": "winner",
"home_team": 61,
"away_team": 62,
"home_result": null,
"away_result": null,
"home_penalty": null,
"away_penalty": null,
"winner": null,
"date": "2018-07-15T18:00:00+03:00",
"stadium": 1,
"channels": [3, 4],
"finished": false,
"matchday": 7
}
]
}
}
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>6f5120e39128a2cd38560c2453308feb</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/json</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>world_cup_2018_data.json</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>filename</string> </key>
<value> <string>world_cup_data.json</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018_data_json</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>File</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018 Data JSON</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528117341.03</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>967.65229.47339.45738</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528117316.11</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Manifest" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>world_cup_2018.appcache</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018_appcache</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Manifest</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content</string> </key>
<value> <string>CACHE MANIFEST\n
# generated on Mon, 6 Jun 2018 0:00:00 GMT+0200\n
CACHE:\n
favicon.ico\n
world_cup_2018_launcher.js\n
world_cup_2018_data.json\n
world_cup_2018.css\n
jiodev.js\n
renderjs.js\n
rsvp.js\n
NETWORK:\n
*</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018 Appcache</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119775.44</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.10218.14554.15616</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528748796.87</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119647.24</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
/**********************************************
* Colors
**********************************************/
/**********************************************
* Fonts (font-family)
**********************************************/
/**********************************************
* Shared
**********************************************/
/**********************************************
* http://meyerweb.com/eric/tools/css/reset/
* v2.0 | 20110126
* License: none (public domain)
**********************************************/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/**********************************************
* Default
**********************************************/
html {
height: 100%;
width: 100%;
display: block;
background-color: white;
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
height: 100%;
width: 100%;
display: block;
word-wrap: break-word;
}
body,
button,
input,
textarea,
select {
font-family: 'Open Sans', Helvetica, Arial, sans-serif;
font-size: 12pt;
padding: 0;
margin: 0;
font-weight: 400;
line-height: 1.5;
}
@media only screen and (min-width: 70em) {
body,
button,
input,
textarea,
select {
font-size: 12pt;
}
}
/**********************************************
* Style
**********************************************/
body > header {
text-align: center;
}
body > header > h1 {
font-size: 5em;
}
body > main > form {
max-width: 20em;
}
body > main > form > h2 {
text-align: center;
background: indianred;
}
body > main > form > ul > li {
text-align: center;
}
body > main > form > ul > li label {
width: 7em;
display: inline-block;
}
body > main > form > ul > li input[type="radio"] {
display: none;
}
body > main > form > ul > li input[type="radio"]:checked + label {
font-weight: bold;
}
body > main > form > ul > li input[type="integer"] {
width: 2em;
}
body > main > ul {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
width: 20em;
}
@media only screen and (min-width: 70em) {
body > main > ul {
width: 70em;
}
}
body > main > ul > li {
width: 100%;
flex-shrink: 1;
vertical-align: top;
padding: 3pt;
}
@media only screen and (min-width: 70em) {
body > main > ul > li {
width: 10em;
}
body > main > ul > li:first-of-type {
margin-left: 30em;
}
}
body > main > ul > li > button {
background-image: none;
background: transparent;
cursor: pointer;
outline: none;
border: none;
width: 100%;
padding: 6pt;
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 0.325em;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}
body > main > ul > li > button h2 {
margin-bottom: 6pt;
text-align: center;
background: indianred;
}
body > main > ul > li > button ul {
text-align: left;
font-size: small;
}
body > main > table {
max-width: 40em;
border: 1px solid black;
margin-left: 1em;
padding: 0;
border-collapse: collapse;
border-spacing: 0;
}
body > main > table tr {
border: 1px solid black;
padding-top: 6pt;
padding-bottom: 6pt;
}
body > main > table th,
body > main > table td {
text-align: center;
padding-top: 6pt;
padding-bottom: 6pt;
}
body > main > table thead {
text-align: center;
background: indianred;
}
body > main > table thead th {
min-width: 10em;
text-transform: uppercase;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Style" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>world_cup_2018.css</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018_css</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Style</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018 CSS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528140384.48</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.15468.48654.57804</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1529064254.49</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528140309.41</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html manifest="world_cup_2018.appcache">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="favicon.ico">
<title>BUT</title>
<meta name="description" content="${site_description}">
<meta name="keywords" content="${site_keywords}">
<link rel="stylesheet" href="world_cup_2018.css">
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="jiodev.js"></script>
<script src="handlebars.js"></script>
<script id="result_template" type="text/x-handlebars-template">
<table>
<caption>Result ({{match_count}} matches)</caption>
<thead>
<tr>
<th>Score</th>
<th>Name</th>
</tr>
</thead>
<tbody>
{{#each player_list}}<tr>
<td>{{score}}</td>
<td>{{name}}</td>
</tr>{{/each}}
</tbody>
</table>
</script>
<script id="day_list_template" type="text/x-handlebars-template">
<ul>{{#each day_list}}<li>
{{#if match_list}}
<button type="button" data-wc2018="renderCard" data-wc2018-param="{{day_query}}"><h2>{{day_string}}</h2>
<ul>
{{#each match_list}}
<li>{{title}}</li>
{{/each}}
</ul></button>
{{/if}}
</li>{{/each}}</ul>
<button type="button" data-wc2018="renderExport">Share!</button>
<button type="button" data-wc2018="renderImport">Import</button>
<button type="button" data-wc2018="renderResult">Result</button>
</script>
<script id="share_template" type="text/x-handlebars-template">
<p>Share this code: <b>{{code}}</b></p>
<button type="button" data-wc2018="renderCalendar">Done</button>
</script>
<script id="import_form_template" type="text/x-handlebars-template">
<form data-wc2018="submitImport">
<label for="password_list">Paste password list</label>
<textarea required name="password_text"
id="password_text">{{password_text}}</textarea>
<input type="submit" value="Import"></input>
</form> nutnut
<form data-wc2018="submitNewCode">
<label for="player">Player</label>
<input required name="player" id="player"></input>
<label for="code">Code</label>
<input required name="code" id="code"></input>
<input type="submit" value="Add"></input>
</form>
</script>
<script id="day_form_template" type="text/x-handlebars-template">
<form data-wc2018="submitBet">
<h2>{{day_string}}</h2>
<ul>
{{#each match_list}}<li>
<!--input type="radio" name="couscous" id="couscous_1" required />
<label for="couscous_1">Home</label-->
<label for="{{home_bet_reference}}">{{home_bet_title}}</label>
<input required type="integer" name="{{home_bet_reference}}"
id="{{home_bet_reference}}" value="{{home_bet}}"></input>
/
<input required type="integer" name="{{away_bet_reference}}"
id="{{away_bet_reference}}" value="{{away_bet}}"></input>
<label for="{{away_bet_reference}}">{{away_bet_title}}</label>
<!--input type="radio" name="couscous" id="couscous_2" required />
<label for="couscous_2">Away</label-->
</li>{{/each}}
</ul>
<input type="submit" value="Save"></input>
</form>
</script>
<script src="world_cup_2018_launcher.js"></script>
</head>
<body>
<header>
<h1>Fifa World Cup</h1>
<p>Russia 2018</p>
</header>
<main></main>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>world_cup_2018_launcher.html</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Starting Point</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018_launcher_html</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>text_content_substitution_mapping_method_id</string> </key>
<value> <string>WebPage_getRenderJSSubstitutionMappingDict</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018 Launcher</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119158.41</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.15868.5231.7987</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1529087777.33</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119068.37</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
/*globals window, document, RSVP, rJS, jIO, Handlebars, LZString*/
/*jslint indent: 2, maxlen: 80*/
/*jslint nomen: true*/
(function (window, document, RSVP, rJS, jIO, Handlebars, LZString) {
"use strict";
/////////////////////////////////////////////////////////////
// Handlebars
/////////////////////////////////////////////////////////////
var day_list_template = Handlebars.compile(
document.getElementById('day_list_template').innerHTML
), day_form_template = Handlebars.compile(
document.getElementById('day_form_template').innerHTML
), share_template = Handlebars.compile(
document.getElementById('share_template').innerHTML
), import_form_template = Handlebars.compile(
document.getElementById('import_form_template').innerHTML
), result_template = Handlebars.compile(
document.getElementById('result_template').innerHTML
),
MY_BET_ID = 'my_wc2018_bet',
CODE_DICT_ID = 'wc2018_code_dict';
/////////////////////////////////////////////////////////////
// JSON Parser
/////////////////////////////////////////////////////////////
function WorldCup2018Parser(txt) {
this._parser = JSON.parse(txt);
}
WorldCup2018Parser.prototype.getDocumentList = function () {
var result_list = [],
i,
key,
tmp,
team_dict = {};
// Parse teams
for (i = this._parser.teams.length; i > 0; i -= 1) {
tmp = this._parser.teams[i - 1];
result_list.push({
id: 'team_' + tmp.id,
value: {},
doc: {
portal_type: 'World Cup 2018 Team',
title: tmp.name,
short_title: tmp.emojiString
}
});
team_dict[tmp.id] = tmp.name;
}
// Parse groups
for (key in this._parser.groups) {
if (this._parser.groups.hasOwnProperty(key)) {
// Group document
result_list.push({
id: 'group_' + this._parser.groups[key].name.slice(-1),
value: {},
doc: {
portal_type: 'World Cup 2018 Group',
title: this._parser.groups[key].name
}
});
// Match documents
for (i = this._parser.groups[key].matches.length; i > 0; i -= 1) {
tmp = this._parser.groups[key].matches[i - 1];
result_list.push({
id: 'match_' + tmp.name,
value: {},
doc: {
portal_type: 'World Cup 2018 Match',
group_match: true,
start_date: tmp.date,
home_team: tmp.home_team,
home_team_title: team_dict[tmp.home_team],
home_result: tmp.home_result,
away_team: tmp.away_team,
away_team_title: team_dict[tmp.away_team],
away_result: tmp.away_result,
finished: tmp.finished,
title: team_dict[tmp.home_team] + ' / ' + team_dict[tmp.away_team]
}
});
}
}
}
/*
// Parse knockout
for (key in this._parser.knockout) {
if (this._parser.knockout.hasOwnProperty(key)) {
// Group document
result_list.push({
id: 'knockout_' + this._parser.knockout[key],
value: {},
doc: {
portal_type: 'World Cup 2018 Knockout',
title: this._parser.knockout[key].name
}
});
// Match documents
for (i = this._parser.knockout[key].matches.length; i > 0; i -= 1) {
tmp = this._parser.knockout[key].matches[i - 1];
result_list.push({
id: 'match_' + tmp.name,
value: {},
doc: {
portal_type: 'World Cup 2018 Match',
start_date: tmp.date,
title: tmp.name
}
});
}
}
}
*/
return result_list;
};
/////////////////////////////////////////////////////////////
// Helpers
/////////////////////////////////////////////////////////////
function getParser(storage) {
if (storage._parser === undefined) {
return storage._sub_storage.getAttachment(storage._document_id,
storage._attachment_id,
{format: 'text'})
.push(function (txt) {
storage._parser = new WorldCup2018Parser(txt);
return storage._parser;
});
}
return new RSVP.Queue()
.push(function () {
return storage._parser;
});
}
/////////////////////////////////////////////////////////////
// Storage (ParserStorage clone)
/////////////////////////////////////////////////////////////
function WorldCupStorage(spec) {
this._attachment_id = spec.attachment_id;
this._document_id = spec.document_id;
this._parser_name = 'world_cup_2018';
this._sub_storage = jIO.createJIO(spec.sub_storage);
}
WorldCupStorage.prototype.hasCapacity = function (capacity) {
return (capacity === "list") || (capacity === 'include');
};
WorldCupStorage.prototype.buildQuery = function (options) {
if (options === undefined) {
options = {};
}
return getParser(this)
.push(function (parser) {
return parser.getDocumentList((options.include_docs || false));
});
};
WorldCupStorage.prototype.get = function (id) {
return getParser(this)
.push(function (parser) {
var result_list = parser.getDocumentList(),
i;
for (i = result_list.length; i > 0; i -= 1) {
if (id === result_list[i - 1].id) {
return result_list[i - 1].doc;
}
}
throw new jIO.util.jIOError(
"Cannot find parsed document: " + id,
404
);
});
};
jIO.addStorage('world_cup_data', WorldCupStorage);
/////////////////////////////////////////////////////////////
// Gadget helpers
/////////////////////////////////////////////////////////////
function isSameDay(d1, d2) {
return d1.getFullYear() === d2.getFullYear() &&
d1.getMonth() === d2.getMonth() &&
d1.getDate() === d2.getDate();
}
function parseForm(form) {
var form_data = {},
i,
len = form.elements.length;
for (i = 0; i < len; i += 1) {
if (form.elements[i].hasAttribute('name')) {
form_data[form.elements[i].name] = form.elements[i].value;
}
}
return form_data;
}
/////////////////////////////////////////////////////////////
// Gadget
/////////////////////////////////////////////////////////////
rJS(window)
.ready(function initJio() {
this._storage = jIO.createJIO({
type: 'replicate',
check_local_modification: false,
check_local_creation: false,
check_local_deletion: false,
local_sub_storage: {
type: 'query',
sub_storage: {
// type: 'memory'
type: "indexeddb",
database: "world_cup_2018"
}
},
signature_sub_storage: {
type: 'query',
sub_storage: {
// type: 'memory'
type: "indexeddb",
database: "world_cup_2018_hash"
}
},
remote_sub_storage: {
type: 'world_cup_data',
// document_id: 'world_cup_2018_data.json',
document_id: 'https://raw.githubusercontent.com/lsv/' +
'fifa-worldcup-2018/master/data.json',
attachment_id: 'enclosure',
sub_storage: {
type: 'http'
}
}
});
})
.declareMethod('getBet', function getBet() {
var gadget = this;
return gadget._storage.get(MY_BET_ID)
.push(undefined, function (error) {
if ((error instanceof jIO.util.jIOError) &&
(error.status_code === 404)) {
return {
portal_type: 'World Cup 2018 Bet'
};
}
throw error;
});
})
.declareMethod('updateBet', function updateBet(new_doc) {
var gadget = this;
return gadget.getBet()
.push(function (doc) {
var key;
for (key in new_doc) {
if (new_doc.hasOwnProperty(key)) {
doc[key] = new_doc[key];
}
}
return gadget._storage.put(MY_BET_ID, doc);
});
})
.declareMethod('getCodeDict', function getCodeDict() {
var gadget = this;
return gadget._storage.get(CODE_DICT_ID)
.push(function (doc) {
return doc.code_dict;
}, function (error) {
if ((error instanceof jIO.util.jIOError) &&
(error.status_code === 404)) {
return {};
}
throw error;
});
})
.declareMethod('updateCodeDict', function updateBet(new_code_dict) {
var gadget = this;
return gadget._storage.put(CODE_DICT_ID, {
portal_type: 'World Cup 2018 Code Dict',
code_dict: new_code_dict
});
})
.declareService(function startApplication() {
var gadget = this;
// First, copy all JSON data into memory
return gadget._storage.repair()
.push(function () {
return gadget.renderCalendar();
});
})
.declareMethod('renderCalendar', function renderLauncher() {
var gadget = this;
return gadget._storage.allDocs({
query: 'portal_type:"World Cup 2018 Match"',
select_list: ['portal_type', 'start_date', 'home_team', 'title'],
sort_on: [['start_date', 'ascending'], ['title', 'ascending']]
})
.push(function (result) {
var i,
length = result.data.rows.length,
match,
date,
day_count,
previous_date = null,
calendar_list = [];
for (i = 0; i < length; i += 1) {
match = result.data.rows[i].value;
date = new Date(match.start_date);
if (previous_date === null) {
day_count = 1;
calendar_list = [{
day_string: date.toLocaleDateString(),
day_count: day_count,
day_query: match.start_date.substr(0, 10),
match_list: [match]
}];
} else if (!isSameDay(date, previous_date)) {
day_count += 1;
// XXX check day diff?
calendar_list.push({
day_string: date.toLocaleDateString(),
day_query: match.start_date.substr(0, 10),
day_count: day_count,
match_list: [match]
});
} else {
calendar_list[calendar_list.length - 1].match_list.push(match);
}
previous_date = date;
}
gadget.element.querySelector('main').innerHTML = day_list_template({
day_list: calendar_list
});
});
})
.declareMethod('renderCard', function renderLauncher(day_query) {
var gadget = this,
date = new Date(day_query),
bet;
return gadget.getBet()
.push(function (result) {
bet = result;
return gadget._storage.allDocs({
query: 'portal_type:"World Cup 2018 Match" AND ' +
'start_date:"' + day_query + '%"',
select_list: ['portal_type', 'start_date', 'title',
'home_team_title', 'away_team_title'],
sort_on: [['start_date', 'ascending'], ['title', 'ascending']]
});
})
.push(function (result) {
var i,
length = result.data.rows.length,
match_list = [],
match;
for (i = 0; i < length; i += 1) {
match = result.data.rows[i].value;
match.home_bet_reference = result.data.rows[i].id + '_A';
match.away_bet_reference = result.data.rows[i].id + '_B';
// init to 0
match.home_bet = bet[match.home_bet_reference] || 0;
match.away_bet = bet[match.away_bet_reference] || 0;
match.home_bet_title = match.home_team_title;
match.away_bet_title = match.away_team_title;
match_list.push(result.data.rows[i].value);
}
gadget.element.querySelector('main').innerHTML = day_form_template({
day_string: date.toLocaleDateString(),
match_list: match_list
});
});
})
.declareMethod('renderExport', function renderExport() {
var gadget = this,
match_list;
return gadget._storage.allDocs({
query: 'portal_type:"World Cup 2018 Match" AND ' +
'group_match: true',
select_list: ['start_date'],
sort_on: [['start_date', 'ascending'], ['title', 'ascending']]
})
.push(function (result) {
match_list = result.data.rows;
return gadget.getBet();
})
.push(function (doc) {
var i,
j,
result = '',
key,
suffix_list = ['_A', '_B'];
for (i = 0; i < match_list.length; i += 1) {
for (j = 0; j < suffix_list.length; j += 1) {
key = 'match_' + (i + 1) + suffix_list[j];
if ((!doc.hasOwnProperty(key)) ||
(parseInt(doc[key], 10) > 15)) {
// Bet between 0 and 15
return gadget.renderCard(match_list[i].value
.start_date.substr(0, 10));
}
result += parseInt(doc[key], 10).toString(16);
}
}
gadget.element.querySelector('main').innerHTML = share_template({
code: LZString.compressToBase64(result)
});
});
})
.declareMethod('renderImport', function renderExport() {
var gadget = this;
return gadget.getCodeDict()
.push(function (code_dict) {
var key,
import_string = '';
for (key in code_dict) {
if (code_dict.hasOwnProperty(key)) {
import_string += '\n' + key + ' | ' + code_dict[key];
}
}
gadget.element.querySelector('main').innerHTML =
import_form_template({password_text: import_string});
});
})
.declareMethod('renderResult', function renderExport() {
var gadget = this,
match_list;
return gadget._storage.allDocs({
query: 'portal_type:"World Cup 2018 Match" AND finished:true AND ' +
'group_match: true',
select_list: ['start_date', 'home_result', 'away_result',
'home_team_title', 'away_team_title', 'title'],
sort_on: [['start_date', 'ascending'], ['title', 'ascending']]
})
.push(function (result) {
match_list = result.data.rows;
return gadget.getCodeDict();
})
.push(function (code_dict) {
// First, decode all codes
var key,
i,
result_list,
player_list = [],
score_list = [],
score,
home_result,
away_result,
home_bet,
away_bet,
key_count = 0,
decoded;
for (key in code_dict) {
if (code_dict.hasOwnProperty(key)) {
key_count += 1;
result_list = [];
decoded = LZString.decompressFromBase64(code_dict[key]);
for (i = 0; i < decoded.length; i += 1) {
result_list.push(parseInt(decoded[i], 16));
}
code_dict[key] = {
result_list: result_list,
score: 0
};
}
}
if (!key_count) {
return gadget.renderImport();
}
// Check match result
for (i = 0; i < match_list.length; i += 1) {
home_result = match_list[i].value.home_result;
away_result = match_list[i].value.away_result;
for (key in code_dict) {
if (code_dict.hasOwnProperty(key)) {
// console.log(match_list[i]);
home_bet = code_dict[key].result_list[2 * (parseInt(match_list[i].id.slice(6), 10) - 1)];
away_bet = code_dict[key].result_list[2 * (parseInt(match_list[i].id.slice(6), 10) - 1) + 1];
if ((home_result === home_bet) &&
(away_result === away_bet)) {
// Correct score!
console.log('score', home_bet, away_bet, match_list[i].value.title, home_result, away_result);
score = 4;
} else if (((home_result > away_result) &&
(home_bet > away_bet)) ||
((home_result === away_result) &&
(home_bet === away_bet)) ||
((home_result < away_result) &&
(home_bet < away_bet))) {
// Found correct winner
console.log('guess', home_bet, away_bet, match_list[i].value.title, home_result, away_result);
score = 2;
} else {
// Be nice, and always give a point
console.log('loser', home_bet, away_bet, match_list[i].value.title, home_result, away_result);
score = 1;
}
code_dict[key].score += score;
/*
if (i === 0) {
player_list.push({
name: key,
score: score
});
}
*/
}
}
}
// Render player list
for (key in code_dict) {
if (code_dict.hasOwnProperty(key)) {
player_list.push({
name: key,
score: code_dict[key].score
});
}
}
player_list.sort(function (a, b) {
return b.score - a.score;
});
for (i = 0; i < player_list.length; i += 1) {
if ((i === 0) ||
(player_list[i].score !== player_list[i - 1].score)) {
score_list.push({
name: player_list[i].name,
score: player_list[i].score
});
} else {
score_list[score_list.length - 1].name +=
', ' + player_list[i].name;
}
}
// console.log(code_dict);
gadget.element.querySelector('main').innerHTML = result_template({
player_list: score_list,
match_count: match_list.length
});
});
})
.onEvent('click', function trapClickEvent(evt) {
// Use click bubble
var button_parent = evt.target.closest('button[data-wc2018]');
if (button_parent !== null) {
evt.preventDefault();
return this[button_parent.getAttribute('data-wc2018')](
button_parent.getAttribute('data-wc2018-param')
);
}
}, false, false)
.declareMethod('submitBet', function submitBet(evt) {
var gadget = this;
return gadget.updateBet(parseForm(evt.target))
.push(function () {
return gadget.renderExport();
});
})
.declareMethod('submitNewCode', function submitNewCode(evt) {
var gadget = this;
return gadget.getCodeDict()
.push(function (code_dict) {
var parsed_form = parseForm(evt.target),
// Ensure code can be decoded/parsed
decoded = LZString.decompressFromBase64(parsed_form.code);
if (decoded) {
code_dict[parsed_form.player] = parsed_form.code;
return gadget.updateCodeDict(code_dict)
.push(function () {
return gadget.renderImport();
});
}
});
})
.declareMethod('submitImport', function submitImport(evt) {
var parsed_form = parseForm(evt.target),
password_text = parsed_form.password_text,
line_list = password_text.split('\n'),
sub_list,
code_dict = {},
i,
gadget = this;
for (i = 0; i < line_list.length; i += 1) {
sub_list = line_list[i].split(' | ');
code_dict[sub_list[0]] = sub_list[1];
}
return gadget.updateCodeDict(code_dict)
.push(function () {
return gadget.renderResult();
});
})
.onEvent('submit', function trapSubmitEvent(evt) {
evt.preventDefault();
var form_parent = evt.target.closest('form[data-wc2018]');
if (form_parent !== null) {
return this[form_parent.getAttribute('data-wc2018')](evt);
}
});
}(window, document, RSVP, rJS, jIO, Handlebars, LZString));
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Script" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>world_cup_2018_launcher.js</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018_launcher_js</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value> <string>en</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018 Launcher JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish_alive</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119270.69</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published_alive</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.19633.6812.24251</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1529314173.15</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528119162.78</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Web Site" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Authenticated</string>
<string>Author</string>
<string>Manager</string>
<string>Member</string>
<string>Owner</string>
<string>Reviewer</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_folders_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Delete_objects_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Anonymous</string>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Authenticated</string>
<string>Author</string>
<string>Manager</string>
<string>Member</string>
<string>Owner</string>
<string>Reviewer</string>
</tuple>
</value>
</item>
<item>
<key> <string>__before_publishing_traverse__</string> </key>
<value>
<object>
<klass>
<global name="MultiHook" module="ZPublisher.BeforeTraverse"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_defined_in_class</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>_hookname</string> </key>
<value> <string>__before_publishing_traverse__</string> </value>
</item>
<item>
<key> <string>_list</string> </key>
<value>
<list>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</list>
</value>
</item>
<item>
<key> <string>_prior</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>__before_traverse__</string> </key>
<value>
<dictionary>
<item>
<key>
<tuple>
<int>99</int>
<string>ERP5 Web Site/world_cup_2018</string>
</tuple>
</key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_x_frame_options</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_content_security_policy</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>available_language</string> </key>
<value>
<tuple>
<string>en</string>
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>caching_policy/must-revalidate</string>
<string>aggregate/web_page_module/world_cup_2018_launcher_html</string>
</tuple>
</value>
</item>
<item>
<key> <string>configuration_content_security_policy</string> </key>
<value> <string>default-src \'none\'; img-src \'self\'; media-src \'self\'; connect-src \'self\' raw.githubusercontent.com; script-src \'self\' \'unsafe-eval\'; style-src \'self\';</string> </value>
</item>
<item>
<key> <string>configuration_x_frame_options</string> </key>
<value> <string>SAMEORIGIN</string> </value>
</item>
<item>
<key> <string>container_layout</string> </key>
<value> <string>WebSection_renderDefaultPageAsGadget</string> </value>
</item>
<item>
<key> <string>content_layout</string> </key>
<value> <string>WebSection_renderDefaultPageAsGadget</string> </value>
</item>
<item>
<key> <string>custom_render_method_id</string> </key>
<value> <string>WebSection_renderDefaultPageAsGadget</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>world_cup_2018</string> </value>
</item>
<item>
<key> <string>layout_configuration_form_id</string> </key>
<value> <string>WebSection_viewRenderJSPreference</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Site</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>skin_selection_name</string> </key>
<value> <string>RJS</string> </value>
</item>
<item>
<key> <string>static_language_selection</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>World Cup 2018</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="WebSiteTraversalHook" module="Products.ERP5.Document.WebSite"/>
</pickle>
<pickle>
<dictionary/>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>category_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>publish</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1528117779.85</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>published</string> </value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>968.59.40410.23688</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1529060918.21</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
erp5_web_renderjs_ui
\ No newline at end of file
document_module/world_cup_2018*
image_module/world_cup_2018*
web_page_module/world_cup_2018*
web_site_module/world_cup_2018
\ No newline at end of file
document_module/world_cup_2018*
image_module/world_cup_2018*
web_page_module/world_cup_2018*
web_site_module/world_cup_2018
\ No newline at end of file
document_module/world_cup_2018*
image_module/world_cup_2018*
web_page_module/world_cup_2018*
web_site_module/world_cup_2018
web_site_module/world_cup_2018/**
\ No newline at end of file
erp5_web_but
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment