Skip to content
Snippets Groups Projects
Verified Commit 955cc3eb authored by Damien's avatar Damien
Browse files

FEAT #8956 Filters without value

parent 2e14c3d0
No related branches found
No related tags found
No related merge requests found
...@@ -41,6 +41,7 @@ DO $$ BEGIN ...@@ -41,6 +41,7 @@ DO $$ BEGIN
END$$; END$$;
UPDATE history SET table_name = 'redirected_baskets' WHERE table_name = 'user_abs'; UPDATE history SET table_name = 'redirected_baskets' WHERE table_name = 'user_abs';
/* CONFIGURATIONS */
DROP TABLE IF EXISTS configurations; DROP TABLE IF EXISTS configurations;
CREATE TABLE configurations CREATE TABLE configurations
( (
...@@ -53,6 +54,7 @@ CONSTRAINT configuration_unique_key UNIQUE (service) ...@@ -53,6 +54,7 @@ CONSTRAINT configuration_unique_key UNIQUE (service)
WITH (OIDS=FALSE); WITH (OIDS=FALSE);
INSERT INTO configurations (service, value) VALUES ('admin_email_server', '{"type" : "smtp", "host" : "smtp.gmail.com", "port" : 465, "user" : "", "password" : "", "auth" : true, "secure" : "ssl", "from" : "notifications@maarch.org", "charset" : "utf-8"}'); INSERT INTO configurations (service, value) VALUES ('admin_email_server', '{"type" : "smtp", "host" : "smtp.gmail.com", "port" : 465, "user" : "", "password" : "", "auth" : true, "secure" : "ssl", "from" : "notifications@maarch.org", "charset" : "utf-8"}');
/* EMAILS */
DROP TABLE IF EXISTS emails; DROP TABLE IF EXISTS emails;
CREATE TABLE emails CREATE TABLE emails
( (
...@@ -77,22 +79,18 @@ CONSTRAINT emails_pkey PRIMARY KEY (id) ...@@ -77,22 +79,18 @@ CONSTRAINT emails_pkey PRIMARY KEY (id)
) )
WITH (OIDS=FALSE); WITH (OIDS=FALSE);
/* SERVICES */
DO $$ BEGIN DO $$ BEGIN
IF (SELECT count(group_id) FROM usergroups_services WHERE service_id IN ('edit_recipient_in_process', 'edit_recipient_outside_process')) = 0 THEN IF (SELECT count(group_id) FROM usergroups_services WHERE service_id IN ('edit_recipient_in_process', 'edit_recipient_outside_process')) = 0 THEN
INSERT INTO usergroups_services (group_id, service_id) INSERT INTO usergroups_services (group_id, service_id)
SELECT group_id, 'edit_recipient_in_process' FROM usergroups WHERE group_id NOT IN ( SELECT usergroups.group_id, 'edit_recipient_in_process' FROM usergroups
SELECT group_id LEFT JOIN usergroups_services ON usergroups.group_id = usergroups_services.group_id AND usergroups_services.service_id = 'add_copy_in_process'
FROM usergroups_services WHERE service_id is null;
WHERE service_id = 'add_copy_in_process'
);
INSERT INTO usergroups_services (group_id, service_id) INSERT INTO usergroups_services (group_id, service_id)
SELECT group_id, 'edit_recipient_outside_process' FROM usergroups WHERE group_id NOT IN ( SELECT usergroups.group_id, 'edit_recipient_outside_process' FROM usergroups
SELECT group_id LEFT JOIN usergroups_services ON usergroups.group_id = usergroups_services.group_id AND usergroups_services.service_id = 'add_copy_in_indexing_validation'
FROM usergroups_services WHERE service_id is null;
WHERE service_id = 'add_copy_in_indexing_validation'
);
DELETE FROM usergroups_services WHERE service_id in ('add_copy_in_process', 'add_copy_in_indexing_validation'); DELETE FROM usergroups_services WHERE service_id in ('add_copy_in_process', 'add_copy_in_indexing_validation');
END IF; END IF;
......
...@@ -64,21 +64,51 @@ class ResourceListController ...@@ -64,21 +64,51 @@ class ResourceListController
$queryData[] = "%{$data['search']}%"; $queryData[] = "%{$data['search']}%";
$queryData[] = "%{$data['search']}%"; $queryData[] = "%{$data['search']}%";
} }
if (!empty($data['priorities'])) { if (isset($data['priorities'])) {
$where[] = 'priority in (?)'; if (empty($data['priorities'])) {
$queryData[] = explode(',', $data['priorities']); $where[] = 'priority is null';
} else {
$replace = preg_replace('/(^,)|(,$)/', '', $data['priorities']);
$replace = preg_replace('/(,,)/', ',', $replace);
if ($replace != $data['priorities']) {
$where[] = '(priority is null OR priority in (?))';
} else {
$where[] = 'priority in (?)';
}
$queryData[] = explode(',', $replace);
}
} }
if (!empty($data['categories'])) { if (isset($data['categories'])) {
$where[] = 'category_id in (?)'; if (empty($data['categories'])) {
$queryData[] = explode(',', $data['categories']); $where[] = 'category_id is null';
} else {
$replace = preg_replace('/(^,)|(,$)/', '', $data['category_id']);
$replace = preg_replace('/(,,)/', ',', $replace);
if ($replace != $data['category_id']) {
$where[] = '(category_id is null OR category_id in (?))';
} else {
$where[] = 'category_id in (?)';
}
$queryData[] = explode(',', $replace);
}
} }
if (!empty($data['statuses'])) { if (!empty($data['statuses'])) {
$where[] = 'status in (?)'; $where[] = 'status in (?)';
$queryData[] = explode(',', $data['statuses']); $queryData[] = explode(',', $data['statuses']);
} }
if (!empty($data['entities'])) { if (isset($data['entities'])) {
$where[] = 'destination in (?)'; if (empty($data['entities'])) {
$queryData[] = explode(',', $data['entities']); $where[] = 'destination is null';
} else {
$replace = preg_replace('/(^,)|(,$)/', '', $data['entities']);
$replace = preg_replace('/(,,)/', ',', $replace);
if ($replace != $data['entities']) {
$where[] = '(destination is null OR destination in (?))';
} else {
$where[] = 'destination in (?)';
}
$queryData[] = explode(',', $replace);
}
} }
if (!empty($data['entitiesChildren'])) { if (!empty($data['entitiesChildren'])) {
$entities = explode(',', $data['entitiesChildren']); $entities = explode(',', $data['entitiesChildren']);
...@@ -178,21 +208,45 @@ class ResourceListController ...@@ -178,21 +208,45 @@ class ResourceListController
$dataStatuses = $queryData; $dataStatuses = $queryData;
$dataEntities = $queryData; $dataEntities = $queryData;
if (!empty($data['priorities'])) { if (isset($data['priorities'])) {
$whereCategories[] = 'priority in (?)'; if (empty($data['priorities'])) {
$dataCategories[] = explode(',', $data['priorities']); $tmpWhere = 'priority is null';
$whereStatuses[] = 'priority in (?)'; } else {
$dataStatuses[] = explode(',', $data['priorities']); $replace = preg_replace('/(^,)|(,$)/', '', $data['priorities']);
$whereEntities[] = 'priority in (?)'; $replace = preg_replace('/(,,)/', ',', $replace);
$dataEntities[] = explode(',', $data['priorities']); if ($replace != $data['priorities']) {
$tmpWhere = '(priority is null OR priority in (?))';
} else {
$tmpWhere = 'priority in (?)';
}
$dataCategories[] = explode(',', $replace);
$dataStatuses[] = explode(',', $replace);
$dataEntities[] = explode(',', $replace);
}
$whereCategories[] = $tmpWhere;
$whereStatuses[] = $tmpWhere;
$whereEntities[] = $tmpWhere;
} }
if (!empty($data['categories'])) { if (isset($data['categories'])) {
$wherePriorities[] = 'category_id in (?)'; if (empty($data['categories'])) {
$dataPriorities[] = explode(',', $data['categories']); $tmpWhere = 'category_id is null';
$whereStatuses[] = 'category_id in (?)'; } else {
$dataStatuses[] = explode(',', $data['categories']); $replace = preg_replace('/(^,)|(,$)/', '', $data['category_id']);
$whereEntities[] = 'category_id in (?)'; $replace = preg_replace('/(,,)/', ',', $replace);
$dataEntities[] = explode(',', $data['categories']); if ($replace != $data['category_id']) {
$tmpWhere = '(category_id is null OR category_id in (?))';
} else {
$tmpWhere = 'category_id in (?)';
}
$dataPriorities[] = explode(',', $replace);
$dataStatuses[] = explode(',', $replace);
$dataEntities[] = explode(',', $replace);
}
$wherePriorities[] = $tmpWhere;
$whereStatuses[] = $tmpWhere;
$whereEntities[] = $tmpWhere;
} }
if (!empty($data['statuses'])) { if (!empty($data['statuses'])) {
$wherePriorities[] = 'status in (?)'; $wherePriorities[] = 'status in (?)';
...@@ -202,13 +256,25 @@ class ResourceListController ...@@ -202,13 +256,25 @@ class ResourceListController
$whereEntities[] = 'status in (?)'; $whereEntities[] = 'status in (?)';
$dataEntities[] = explode(',', $data['statuses']); $dataEntities[] = explode(',', $data['statuses']);
} }
if (!empty($data['entities'])) { if (isset($data['entities'])) {
$wherePriorities[] = 'destination in (?)'; if (empty($data['entities'])) {
$dataPriorities[] = explode(',', $data['entities']); $tmpWhere = 'destination is null';
$whereCategories[] = 'destination in (?)'; } else {
$dataCategories[] = explode(',', $data['entities']); $replace = preg_replace('/(^,)|(,$)/', '', $data['entities']);
$whereStatuses[] = 'destination in (?)'; $replace = preg_replace('/(,,)/', ',', $replace);
$dataStatuses[] = explode(',', $data['entities']); if ($replace != $data['entities']) {
$tmpWhere = '(destination is null OR destination in (?))';
} else {
$tmpWhere = 'destination in (?)';
}
$dataPriorities[] = explode(',', $replace);
$dataCategories[] = explode(',', $replace);
$dataStatuses[] = explode(',', $replace);
}
$wherePriorities[] = $tmpWhere;
$whereCategories[] = $tmpWhere;
$whereStatuses[] = $tmpWhere;
} }
if (!empty($data['entitiesChildren'])) { if (!empty($data['entitiesChildren'])) {
$entities = explode(',', $data['entitiesChildren']); $entities = explode(',', $data['entitiesChildren']);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment