feeder: define all joins (#38066)
* join with the dates table must be inner because we do not want to see results for forms outside the dates table (every form must have a receipt_time), * all other joins must be left because form's schemas are dynamic and dimension can be absent from older forms but we still want to count them.
This commit is contained in:
parent
ba95cc7f28
commit
f806b9d675
|
@ -82,19 +82,22 @@
|
|||
"detail" : "date",
|
||||
"master" : "receipt_time",
|
||||
"name" : "receipt_time",
|
||||
"table" : "dates"
|
||||
"table" : "dates",
|
||||
"kind": "right"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "channel_id",
|
||||
"name" : "channel",
|
||||
"table" : "channel"
|
||||
"table" : "channel",
|
||||
"kind": "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "formdef_id",
|
||||
"name" : "formdef",
|
||||
"table" : "formdef"
|
||||
"table" : "formdef",
|
||||
"kind": "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
|
@ -107,20 +110,22 @@
|
|||
"detail" : "id",
|
||||
"master" : "hour_id",
|
||||
"name" : "hour",
|
||||
"table" : "hour"
|
||||
"table" : "hour",
|
||||
"kind": "right"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "generic_status_id",
|
||||
"name" : "generic_status",
|
||||
"table" : "status"
|
||||
"table" : "status",
|
||||
"kind": "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"kind" : "inner",
|
||||
"master" : "first_agent_id",
|
||||
"name" : "agent",
|
||||
"table" : "agent"
|
||||
"table" : "agent",
|
||||
"kind" : "left"
|
||||
}
|
||||
],
|
||||
"json_field" : "json_data",
|
||||
|
@ -290,69 +295,80 @@
|
|||
"detail" : "date",
|
||||
"master" : "receipt_time",
|
||||
"name" : "receipt_time",
|
||||
"table" : "dates"
|
||||
"table" : "dates",
|
||||
"kind" : "right"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "channel_id",
|
||||
"name" : "channel",
|
||||
"table" : "channel"
|
||||
"table" : "channel",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "formdef_id",
|
||||
"name" : "formdef",
|
||||
"table" : "formdef"
|
||||
"table" : "formdef",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"kind" : "left",
|
||||
"master" : "formdef.category_id",
|
||||
"name" : "category",
|
||||
"table" : "category"
|
||||
"table" : "category",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "hour_id",
|
||||
"name" : "hour",
|
||||
"table" : "hour"
|
||||
"table" : "hour",
|
||||
"kind" : "right"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "generic_status_id",
|
||||
"name" : "generic_status",
|
||||
"table" : "status"
|
||||
"table" : "status",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"kind" : "inner",
|
||||
"master" : "first_agent_id",
|
||||
"name" : "agent",
|
||||
"table" : "agent"
|
||||
"table" : "agent",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "status_id",
|
||||
"name" : "status",
|
||||
"table" : "\"status_demande\""
|
||||
"table" : "\"status_demande\"",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "\"function__receiver\"",
|
||||
"name" : "function__receiver",
|
||||
"table" : "role"
|
||||
"table" : "role",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "\"field_item\"",
|
||||
"name" : "item",
|
||||
"table" : "\"formdata_demande_field_item\""
|
||||
"table" : "\"formdata_demande_field_item\"",
|
||||
"kind" : "left"
|
||||
},
|
||||
{
|
||||
"detail" : "id",
|
||||
"master" : "\"field_itemOpen\"",
|
||||
"name" : "itemOpen",
|
||||
"table" : "\"formdata_demande_field_itemOpen\""
|
||||
"table" : "\"formdata_demande_field_itemOpen\"",
|
||||
"kind" : "left"
|
||||
}
|
||||
],
|
||||
"key" : "id",
|
||||
|
|
|
@ -121,18 +121,21 @@ class WcsOlapFeeder(object):
|
|||
'table': 'dates',
|
||||
'detail': 'date',
|
||||
'master': 'receipt_time',
|
||||
'kind': 'right',
|
||||
},
|
||||
{
|
||||
'name': 'channel',
|
||||
'table': 'channel',
|
||||
'master': 'channel_id',
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
},
|
||||
{
|
||||
'name': 'formdef',
|
||||
'table': 'formdef',
|
||||
'master': 'formdef_id',
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
},
|
||||
{
|
||||
'name': 'category',
|
||||
|
@ -146,19 +149,21 @@ class WcsOlapFeeder(object):
|
|||
'table': 'hour',
|
||||
'master': 'hour_id',
|
||||
'detail': 'id',
|
||||
'kind': 'right',
|
||||
},
|
||||
{
|
||||
'name': 'generic_status',
|
||||
'table': 'status',
|
||||
'master': 'generic_status_id',
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
},
|
||||
{
|
||||
'name': 'agent',
|
||||
'table': 'agent',
|
||||
'master': 'first_agent_id',
|
||||
'detail': 'id',
|
||||
'kind': 'inner',
|
||||
'kind': 'left',
|
||||
},
|
||||
],
|
||||
'dimensions': [
|
||||
|
@ -930,6 +935,7 @@ class WcsFormdefFeeder(object):
|
|||
'table': quote(self.status_table_name),
|
||||
'master': 'status_id',
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
})
|
||||
cube['dimensions'].append({
|
||||
'name': 'status',
|
||||
|
@ -948,6 +954,7 @@ class WcsFormdefFeeder(object):
|
|||
'table': 'role',
|
||||
'master': quote(at),
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
})
|
||||
cube['dimensions'].append({
|
||||
'name': at,
|
||||
|
@ -998,9 +1005,8 @@ class WcsFormdefFeeder(object):
|
|||
'table': quote(table_name),
|
||||
'master': quote('field_%s' % field.varname),
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
}
|
||||
if not field.required:
|
||||
join['kind'] = 'full'
|
||||
dimension = {
|
||||
'name': field.varname,
|
||||
'label': field.label.lower(),
|
||||
|
|
Loading…
Reference in New Issue