Skip to content

Commit

Permalink
Merge branch 'main' into fix-unselect-deleted-img
Browse files Browse the repository at this point in the history
  • Loading branch information
4nt0ineB authored Aug 13, 2024
2 parents c988e1f + b1a6c20 commit f6b883b
Show file tree
Hide file tree
Showing 11 changed files with 310 additions and 79 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ update_tests_results: build_taxonomies_test build_lang_test

bash:
@echo "🥫 Open a bash shell in the backend container"
${DOCKER_COMPOSE} run --rm -w /opt/product-opener backend bash
${DOCKER_COMPOSE_RUN} run --rm -w /opt/product-opener backend bash

bash_test:
@echo "🥫 Open a bash shell in the test container"
Expand Down
28 changes: 18 additions & 10 deletions lib/ProductOpener/CRM.pm
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ BEGIN {
&update_last_export_date
&update_company_last_logged_in_contact
&update_company_last_import_type
&update_public_products
&update_pro_products
&add_category_to_company
&update_template_download_date
&update_contact_last_login
Expand Down Expand Up @@ -579,12 +581,20 @@ sub change_company_main_contact($org_ref, $user_id) {
return $req_company;
}

sub update_last_import_date($org_id, $time) {
return _update_partner_field(retrieve_org($org_id), 'x_off_last_import_date', _time_to_odoo_date_str($time));
sub update_last_import_date($org_ref, $time) {
return _update_partner_field($org_ref, 'x_off_last_import_date', _time_to_odoo_date_str($time));
}

sub update_last_export_date($org_id, $time) {
return _update_partner_field(retrieve_org($org_id), 'x_off_last_export_date', _time_to_odoo_date_str($time));
sub update_last_export_date($org_ref, $time) {
return _update_partner_field($org_ref, 'x_off_last_export_date', _time_to_odoo_date_str($time));
}

sub update_public_products($org_ref, $number_of_products) {
return _update_partner_field($org_ref, 'x_off_public_products', $number_of_products);
}

sub update_pro_products($org_ref, $number_of_products) {
return _update_partner_field($org_ref, 'x_off_pro_products', $number_of_products);
}

sub update_contact_last_login ($user_ref) {
Expand Down Expand Up @@ -634,8 +644,7 @@ Add a category to a company in Odoo
=cut

sub add_category_to_company($org_id, $label) {
my $org_ref = retrieve_org($org_id);
sub add_category_to_company($org_ref, $label) {
return if not defined $org_ref->{crm_org_id};

my $category_id = $crm_data->{category}{$label};
Expand All @@ -645,7 +654,7 @@ sub add_category_to_company($org_id, $label) {
if $log->is_debug();
return;
}
$log->debug("add_category_to_company", {org_id => $org_id, label => $label, category_id => $category_id})
$log->debug("add_category_to_company", {org_id => $org_ref->{org_id}, label => $label, category_id => $category_id})
if $log->is_debug();
return make_odoo_request('res.partner', 'write',
[[$org_ref->{crm_org_id}], {category_id => [[$commands{link}, $category_id]]}]);
Expand All @@ -661,11 +670,10 @@ must match one of the values in CRM.pm @data_source
=cut

sub update_company_last_import_type($org_id, $label) {
my $org_ref = retrieve_org($org_id);
sub update_company_last_import_type($org_ref, $label) {
return if not defined $org_ref->{crm_org_id};
my $category_id = $crm_data->{category}{$label};
add_category_to_company($org_id, $label);
add_category_to_company($org_ref, $label);
return make_odoo_request('res.partner', 'write',
[[$org_ref->{crm_org_id}], {x_off_last_import_type => $category_id}]);
}
Expand Down
84 changes: 35 additions & 49 deletions lib/ProductOpener/Orgs.pm
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ sub store_org ($org_ref) {
defined $org_ref->{org_id} or die("Missing org_id");

# retrieve eventual previous values
my $previous_org_ref = retrieve("$BASE_DIRS{ORGS}/" . $org_ref->{org_id} . ".sto");
my $previous_org_ref = retrieve("$BASE_DIRS{ORGS}/$org_ref->{org_id}.sto");

if ( (defined $previous_org_ref)
&& $previous_org_ref->{valid_org} ne 'accepted'
Expand Down Expand Up @@ -389,20 +389,9 @@ Reference to an array of group ids (e.g. ["admins", "members"])

sub add_user_to_org ($org_id_or_ref, $user_id, $groups_ref) {

my $org_id;
my $org_ref;

if (ref($org_id_or_ref) eq "") {
$org_id = $org_id_or_ref;
$org_ref = retrieve_org($org_id);
}
else {
$org_ref = $org_id_or_ref;
$org_id = $org_ref->{org_id};
}
my $org_ref = org_id_or_ref($org_id_or_ref);

$log->debug("add_user_to_org",
{org_id => $org_id, org_ref => $org_ref, user_id => $user_id, groups_ref => $groups_ref})
$log->debug("add_user_to_org", {org_ref => $org_ref, user_id => $user_id, groups_ref => $groups_ref})
if $log->is_debug();

foreach my $group (@{$groups_ref}) {
Expand Down Expand Up @@ -449,20 +438,9 @@ Reference to an array of group ids (e.g. ["admins", "members"])

sub remove_user_from_org ($org_id_or_ref, $user_id, $groups_ref) {

my $org_id;
my $org_ref;

if (ref($org_id_or_ref) eq "") {
$org_id = $org_id_or_ref;
$org_ref = retrieve_org($org_id);
}
else {
$org_ref = $org_id_or_ref;
$org_id = $org_ref->{org_id};
}
my $org_ref = org_id_or_ref($org_id_or_ref);

$log->debug("remove_user_from_org",
{org_id => $org_id, org_ref => $org_ref, user_id => $user_id, groups_ref => $groups_ref})
$log->debug("remove_user_from_org", {org_ref => $org_ref, user_id => $user_id, groups_ref => $groups_ref})
if $log->is_debug();

foreach my $group (@{$groups_ref}) {
Expand All @@ -481,17 +459,7 @@ sub remove_user_from_org ($org_id_or_ref, $user_id, $groups_ref) {

sub is_user_in_org_group ($org_id_or_ref, $user_id, $group_id) {

my $org_id;
my $org_ref;

if (ref($org_id_or_ref) eq "") {
$org_id = $org_id_or_ref;
$org_ref = retrieve_org($org_id);
}
else {
$org_ref = $org_id_or_ref;
$org_id = $org_ref->{org_id};
}
my $org_ref = org_id_or_ref($org_id_or_ref);

if ( (defined $user_id)
and (defined $org_ref)
Expand All @@ -506,7 +474,6 @@ sub is_user_in_org_group ($org_id_or_ref, $user_id, $group_id) {
}

sub org_name ($org_ref) {

if ((defined $org_ref->{name}) and ($org_ref->{name} ne "")) {
return $org_ref->{name};
}
Expand All @@ -516,23 +483,22 @@ sub org_name ($org_ref) {
}

sub org_url ($org_ref) {

return canonicalize_tag_link("orgs", $org_ref->{org_id});
}

sub update_import_date($org_id, $time) {
my $org_ref = retrieve_org($org_id);
sub update_import_date($org_id_or_ref, $time) {
my $org_ref = org_id_or_ref($org_id_or_ref);
$org_ref->{last_import_t} = $time;
store_org($org_ref);
update_last_import_date($org_id, $time);
update_last_import_date($org_ref, $time);
return;
}

sub update_export_date($org_id, $time) {
my $org_ref = retrieve_org($org_id);
sub update_export_date($org_id_or_ref, $time) {
my $org_ref = org_id_or_ref($org_id_or_ref);
$org_ref->{last_export_t} = $time;
store_org($org_ref);
update_last_export_date($org_id, $time);
update_last_export_date($org_ref, $time);
return;
}

Expand Down Expand Up @@ -566,10 +532,10 @@ Update the last import type for an organization.
=cut

sub update_last_import_type ($org_id, $data_source) {
my $org_ref = retrieve_org($org_id);
sub update_last_import_type ($org_id_or_ref, $data_source) {
my $org_ref = retrieve_org($org_id_or_ref);
$org_ref->{last_import_type} = $data_source;
update_company_last_import_type($org_id, $data_source);
update_company_last_import_type($org_ref, $data_source);
store_org($org_ref);
return;
}
Expand All @@ -588,4 +554,24 @@ sub accept_pending_user_in_org ($org_ref, $user_id) {
return;
}

=head2 org_id_or_ref($org_id_or_ref)
Systematically return the org_ref for a given org_id or org_ref.
=cut

sub org_id_or_ref ($org_id_or_ref) {
my $org_id;
my $org_ref;
if (ref($org_id_or_ref) eq "") {
$org_id = $org_id_or_ref;
$org_ref = retrieve_org($org_id);
}
else {
$org_ref = $org_id_or_ref;
$org_id = $org_ref->{org_id};
}
return $org_ref;
}

1;
4 changes: 3 additions & 1 deletion lib/ProductOpener/Redis.pm
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ a hashref of the differences between the previous and new revision of the produc
=cut

sub push_to_redis_stream ($user_id, $product_ref, $action, $comment, $diffs) {
sub push_to_redis_stream ($user_id, $product_ref, $action, $comment, $diffs, $timestamp = time()) {

if (!$redis_url) {
# No Redis URL provided, we can't push to Redis
Expand Down Expand Up @@ -131,7 +131,9 @@ sub push_to_redis_stream ($user_id, $product_ref, $action, $comment, $diffs) {
# We let Redis generate the id
'*',
# fields
'timestamp', $timestamp,
'code', Encode::encode_utf8($product_ref->{code}),
'rev', Encode::encode_utf8($product_ref->{rev}),
# product_type should be used over flavor (kept for backward compatibility)
'product_type', $options{product_type},
'flavor', $options{current_server},
Expand Down
23 changes: 9 additions & 14 deletions scripts/gen_users_emails.pl
Original file line number Diff line number Diff line change
Expand Up @@ -36,24 +36,19 @@
@userids = retrieve_userids();
}

my $emails_ref = retrieve("$BASE_DIRS{USERS}/users_emails.sto");

foreach my $userid (@userids) {
my $user_ref = retrieve_user($userid);

my $first = '';
if (!exists $user_ref->{discussion}) {
$first = 'first';
}

# print $user_ref->{email} . "\tnews_$user_ref->{newsletter}$first\tdiscussion_$user_ref->{discussion}\n";

if ($user_ref->{newsletter}) {
print lc($user_ref->{email}) . "\n";
}

if ($user_ref->{twitter} ne '') {
# print "\@" . $user_ref->{twitter} . " ";
if (defined $user_ref) {
my $email = $user_ref->{email};
if ((defined $email) and ($email =~ /\@/)) {
$emails_ref->{$email} = [$userid];
}
}
}

store("$BASE_DIRS{USERS}/users_emails.sto", $emails_ref);

exit(0);

Loading

0 comments on commit f6b883b

Please sign in to comment.