summaryrefslogtreecommitdiff
path: root/addons/link_tracker/models/link_tracker.py
AgeCommit message (Collapse)Author
2021-05-28[FIX] link_tracker: Filter by tracked URL code is not workingLuis González
When trying to filter links by a tracked URL code, the following warning is shown: WARNING dbname odoo.models: Cannot execute name_search, no _rec_name defined on link.tracker.code and the applied filter gives all records. closes odoo/odoo#71376 X-original-commit: 3687dabbc373e57e24ca4596c18ef1dacfde8273 Signed-off-by: agr-odoo <agr-odoo@users.noreply.github.com>
2021-03-15[FIX] link_tracker: prevent downloading big or non-html filesIvan Yelizariev
link tracker tries to get title from HTML, but the url may be not an html page or too big html to process. It's a waste of bandwidth, but may also lead to a Server Memory Limit error. As a solution, make HEAD request and don't proceed to GET request if it's not an html page or it's too big. Also, limit page downloading to 50KB. STEPS: - Have a standard database with link_tracker and mass_mailing. - Create a new mass mail MM - Add a link to a large file in MM Mail Body - Click "SEND" - Go to Settings / Technical / Automation / Scheduled Actions - Open the "Process Mass Mailing Queue" or "Email Marketing: Process queue" - Click "RUN MANUALLY" --- opw-2457640 closes odoo/odoo#67785 X-original-commit: 4216dc83f134aa41232afc7b5d080a9dc93db171 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
2020-08-17[IMP] base,web: _for_xml_id as a safe access pointMartin Trigaux
/web/action/load is the public controller that Should be used by the webclient to fetch actions _for_xml_id is the default access method on actions that implements fields filtering to avoid leaking server action code or other information not needed by the webclient Implementing whitelist of fields that can be access per model
2020-06-12[IMP] mass_mailing: send a statistics email to the mailing responsiblestd-odoo
Purpose ======= Provide a follow-up/overview of the Mailing 24 hours after its been sent. Specifications ============== Send an email to the responsible of the mailing 24 hours the last email of the mass mailing. During the link trackers creation, extract the button label if exists (so we can display them in the statistics email). Technical remarks ================= The statistics email is sent to the responsible of each mailing in the CRON of mass mailing. Task-2227411 closes odoo/odoo#49836 Related: odoo/upgrade#1094 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-05-27[IMP] mass_mailing(_sms): "Click" stat button now redirects to link trackersSébastien Mottet (oms)
PURPOSE Clarify the use case in which a specified email address is set as replies may not be traceable. Make the %Click KPIs visible for Emails as well. Allow users to report on the links that have (or not) been clicked from their mailing. SPECIFICATIONS Display list of link trackers linked to the mailing on 'click' stat button click. Task ID: 2202495 PR #48339 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2020-04-21[IMP] link_tracker, mass_mailing: uuse read_group instead of computing len ↵Victor Feyens
of one2many fields PURPOSE Several counter fields are performed inefficiently. They use compute methods using length of 2many fields instead of making use of more efficient ORM methods like read_group. SPECIFICATIONS There may be a lot of clicks linked to a given link tracker. Compute the count of clicks in batch with a read_group to improve performance. Same for utm campaign mailing count performances. Some missing indexes are added to speedup queries. LINKS Task ID 2196182 PR #44662 Co-Authored-By: Victor Feyens <vfe@odoo.com> Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2020-03-24[MOV] link_tracker, various: more link shortening tools to mail.render.mixinThibault Delavallée
PURPOSE Move links shortening tools on mail.render.mixin to have rendering and post procesing tools available on that mixin. SPECIFICATIONS Move html and text links shortening methods on mail.render.mixin class. That way rendering and post processing is done in that mixin instead of being specific to link.tracker model. Indeed those methods are tools and not really business related methods. Future commits will improve the way mail and sms composer use the render mixin. This commit is therefore both a cleaning and preparing commit. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2019-11-04[FIX] link_tracker: support any urlPaul Morelle
URLs with parameters were not correctly supported by the regular expression. For example, URLs with parameters were truncated before the '?'. This patch adds support for a wider range of URLs, and checks in a test that the parameters are correctly handled. closes odoo/odoo#39762 X-original-commit: 616e145635eac06a0a44ab3d899f4a9e707b3ba8 Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
2019-10-10[REM] website_links: remove favicon, icon_src for performanceryv-odoo
The link tracker model (link.tracker) contained favicon (store) and icon_src computed fields. Computing favicon took {3-6.5%} of installing odoo (with demo data) due to syncronous http call to a external link (google). Moreover, these fields had no sense to be store in odoo and only used in one template. This template was modified to display the same information (icon) as before but without storing fields and with a lazy loading of icons. TASK_ID: 2083715 closes odoo/odoo#38405 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-09-20[MOV] mass_mailing_sms,link_tracker: Move convert_links_text to link_trackerqmo-odoo
This method being needed in the new social app, it made sense to move it to the link_tracker module to make it available for mass_mailing_sms and social to avoid unnecessary duplicated code. LINKS: closes odoo/odoo#34973 Taskid: 2045210 Pr: 37143 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-08-02[REF] utm,mass_mailing: replace mass mailing campaign by utm campaignqmo-odoo
PURPOSE This commit removes the mass_mailing.campaign model. Instead of having a fully fledged model, we will simply inherit utm.campaign. We will also add relevant statistics on utm campaign model in order to use it in various applications. SPECIFICATIONS This commit removes the mass_mailing.campaign model. Instead of having a fully fledged model, we will simply inherit utm.campaign. This change implies that mass_mailing.tag and mass_mailing.stage have to move to the utm model along their associated views/data. These changes were made so that campaigns could be used in the future by social, mass_mailing and mass_sms and available in the same view This commit also removes the source_id and the medium_id fields on the campaign. This commit also moves the unique_ab_testing field from the mass_mailing_campaign to the mass_mailing model Task ID: 2002029 PR: #34015
2019-08-01[IMP] various: Clean stat buttons across all modules.Prakash Prajapati
Purpose ======= Make them consistent. Make sure context is correctly set. Prevent creation when necessary. Specification ============= See https://www.odoo.com/web#id=2024467&action=333&active_id=1251&model=project.task&view_type=form&menu_id=4720 for the detailed list of all the requested improvements. TaskID: 2024467 closes odoo/odoo#34561 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-07-17[REM] *: calls to @api.multiAdrian Torres
Multi is the default api for methods, it is not necessary to explicitly decorate methods with it, adds clutter and most people use it because they see that the rest of the code uses it. Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
2019-07-05[REM] *: remove calls to `api.one` and adapt codeAdrian Torres
Adapt all code that was using `api.one` to recordset-style method and remove any and all calls to `api.one` in preparation for its removal.
2019-03-21[MERGE] forward port branch saas-12.1 up to 6878c9f3424Christophe Simonis
2019-03-18[FIX] link_tracker: prevent undeterministic order on new/recent filterRomain Derie
Before this commit, ordering by `create_date DESC` and `write_date DESC` could lead to undeterministic order if multiple records had the exact same date. This is the case during tests as `crate_date` is set to transaction start time. (That's what NOW() in PSQL does) Now, we enforce that order to avoid randomness. Related to #31829 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-01-14[IMP] link_tracker: make code field required on link.tracker.code modelThibault Delavallée
Indeed it makes no sense to have void codes. This commit is linked to task ID 1904277 and PR #28242.
2019-01-14[CLN] link_tracker: clean some codeThibault Delavallée
Purpose of this commit is to remove some unnecessary code in link tracker. * remove unnecessary code / parameters: * remove unused field click_date on click as create_date is already used for that purpose; This commit is linked to task ID 1904277 and PR #28242.
2019-01-14[REF] link_tracker, mass_mailing: simplify add_click method and add testsThibault Delavallée
In this commit we rewrite a bit add_click in order to remove the inlined sudo and ease inheritance and parameter management inside the method. Access through controllers is sudo-ed as the main API method is now done with current user access rights. This commit is linked to task ID 1904277 and PR #28242.
2018-12-31[FIX] link_tracker: _sql_constraints not appliedAndrea
The unicity was not applied closes odoo/odoo#29793
2018-10-26[REF] link_tracker: clean module viewsThibault Delavallée
Purpose is * to clean a bit views; * to improve link.tracker form view to have information better displayed; * to remove unused views; This commit is linked to task ID 1896681 and PR #27975.
2018-10-26[REF] link_tracker: reorganize python according to guidelinesThibault Delavallée
This was not correctly done when splitting the module at fd5361c0f7116e951cf9e69e2d97a8ccb07ce1b6. Future commits will clean a bit the code in order to better understand how this module works. This commit is linked to task ID 1896681 and PR #27975. No functional change should occur with this commit as it contains only renaming / move.
2018-10-26[MOV] link_tracker: organize module structure according to guidelinesThibault Delavallée
This module still holds old code and deserves some love. This commit cleans a bit the init and manifest files as well as renaming view file according to guidelines. This commit is linked to task ID 1896681 and PR #27975. No functional change should occur with this commit as it contains only renaming / move.
2018-10-18[FIX] mass_mailing: fix tracking link creation in mass mailingThibault Delavallée
When using only mass mailing two issues arise when trying to send mass mailings containing links * a link.tracker is created for each link to shorten; however rights are given currently only in website_links for website designers and not to marketing users that use mass mailing. This commit adds the rights for link.tracker model to those people; * a link.tracker.code is created to hold the shortened versions of the links. As it is a technical model it is now done as superuser as rights on link.tracked model has already been granted and adding rights on such a technical model is not necessary; A test is added that checks what is done with links when sending mass mailings. It helped spotting the hereabove issue. This commit is linked to task ID 1889703 and PR #27526.
2018-09-21[IMP]marketing: Improvement in model descriptionNimesh Jethva
Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311
2017-10-12[FIX] link_tracker: python3 can't concat bytes to strrde
2017-09-22[FIX] link_tracker: Use the correct method namePrakash Prajapati
Issue introduced by https://github.com/odoo/odoo/commit/7accd77999ebcd4ce16388f2a23ee296093fecbc
2017-09-15[REF][FIX] link_tracker, mass_mailing: factorize method creating link ↵Thibault Delavallée
tracker click values This commit factorizes the link.tracker.click values computation out of the add_click method. This method is called when customers click on links in email that are tracked in Odoo. Purpose of this commit is * to effectively put mass mailing related code into mass mailing. Currently link_tracker holds code related to mass mailing which is not in its dependency tree. Let us therefore try to be a bit modular and add a proper inheritance in mass mailing; * allow addons to inherit from the click values prepare method to add specific values depending on their behavior like mass mailing adding links to a mass mailing and a mass mailing campaign;
2017-09-15[FIX] link_tracker: no string.letters in Python 3xmo-odoo
2017-08-23[MERGE] forward port branch saas-16 up to db0810dc6e0Christophe Simonis
2017-08-23[MERGE] forward port branch 10.0 up to 420e433fa3aChristophe Simonis
2017-08-23[FIX] link_tracker: do not track 'tel:' or 'sms:' linksNicolas Martinelli
- Create a mass mailing including a 'tel' or 'sms' link, e.g. `<a href="tel:555-000-0000">555-000-0000</a>` - When sent, the link is converted to a tracked linked (`http://...`) We do not want to convert these links, they should be handled by the browser directly. opw-765885
2017-08-20[FIX] P3: remove pycompat.{keys,items,values} helpersOlivier Dony
Now that we're closer to switching to P3 for good, these helpers have outlived their usefulness, and mostly add noise. All remaining dict.iter*() or dict.view*() must be converted to the normal keys(), values() or items() calls. Whenever the result is likely to be used for more than the scope of a loop, or when the dict needs to be modified during iteration, the calls must be wrapped in a ``list()``, to protect the new P3 semantics. Those cases are very exceptional. Also removed some dead code or improved the API to remove unnecessary conversions.
2017-08-20[FIX] P3: fix base64 and StringIO usesXavier Morel
* StringIO removed from stdlib, replace with io * try to correctly handle BytesIO/StringIO (one is for bytes the other is for text) * fix base64: Python 3 removed bytes-encoding and bytes-bytes codecs (via #encode) so replace all calls to str.encode('base64'), also b64encode is a bytes->bytes conversion so attempt to properly handle that issue #8530
2017-05-15[FIX] P3: urllib, urllib2 and urlparseXavier Morel
In Python 3, all of these were "consolidated" under urllib(.request, .parse, .errors) which is inconvenient. Since we already have hard dependencies on requests and werkzeug(.urls, which is a backport of Python 3's unicode-aware urllib.parse) migrate *everything* to that. A sticking point is urllib2.URLError, those were (mostly) replaced by the slightly more general IOError which URLError extends.
2017-05-10[FIX] P3: list -> iterable builtins (#16811)xmo-odoo
In Python 3: * various builtins and dict methods were changed to return view/iterable objects rather than lists * and the separate Python 2 view/iterable builtins and methods were removed altogether This is problematic when using these items as list (which the happens repeatedly in Odoo), but more viciously when iterating *multiple times* over them (which also happens, which I've messed up multiple times while writing this, and which is a pain to debug even when you've just created the issue). Convert all code using these to semantics-matching cross-version helper functions to get the LCD behaviour between P2 and P3, and forbid the builtins via lint. issue #8530
2017-02-23[MERGE] forward port branch 10.0 up to 387b2acfcbfChristophe Simonis
2017-02-23[MERGE] forward port branch saas-11 up to 1730dca1016Christophe Simonis
2017-02-21[FIX] link_tracker: convert link with ampersandDenis Ledoux
Links containing HTML escaped characters, such as the ampersand `&` escaped `&amp;` were not shortened correctly: Their redirecting URL contained the escaped value (e.g. `&amp;`) instead of the actual character, leading to the wrong redirected URL. e.g. creating a mass-mailing with a link contains as query string ?test1=1&test2=2 were shortened with as redirect link ?test1=1&amp;test2=2 opw-708272
2017-01-03[REF] ir_config_parameter: remove `group_ids` and simplifyRaphael Collet
Add `sudo()` to call `get_param` where necessary, and make the web client use a controller instead of directly accessing parameters.
2016-08-10[IMP] various: use odoo for imports instead of openerp and update class namesThibault Delavallée
2016-06-13[FIX] link_tracker: page title encodingDenis Ledoux
When tracking a page with special characters in the title (e.g. `Ä`), the title of the page in the tracked links was badly encoded, because the encoding was not handled correctly when parsing the given website page. opw-679993
2016-02-15[FIX] link_tracker: use werkzeug url_encode instead of urllibDenis Ledoux
`Werkzeug.url_encode` can handle unicode, while `urllib.urlencode` cannot. opw-669541 Fixes #10928
2015-10-01[MERGE] forward port of branch saas-6 up to e9f1ee4Christophe Simonis
2015-07-10[IMP] mass_mailing: remove depends to website. Create a website_mass_mailing ↵Christophe Matthieu
bridge to add subscribe snippet into website builder. Split website_links to have link_tracker to create short and trackable URLs, and website_links to have a website layout for link_tracker and add button to share page.