Generated documents in attachement


#1

Dear All,

I’m just wondering, maybe its possible to attache any other document (e.g. pro-forma invoice) next to the conference registration notification email? As you solved it with the (qr-code) ticket.
Already, have you any solution for it, or could you tell me, how can I find the files (py, html, ?) to configure it?
We use the 2.0 version now. (Although, we’re thinking about update…)
Thanks a lot,
Renata


#2

Please do so! 2.0 is EOL and we fixed quite a few things in 2.1.

The ticket is handled by the indico core, so there’s no easy way to add extra attachments.

If you need to send invoices and are willing to develop something yourself, you could write a plugin that sends a separate email. I’ve seen quite a few shops send the invoice separately (even amazon marketplace sellers usually do that) so I think that’d be an acceptable option…

FWIW, we plan to support invoicing in a future version. See this GitHub ticket for more details:


#3

Thanks for it. I check this site.


#4

In meantime, I tried other solution for it, which - its seems - will be fine for us, at this moment.
I customized a new template in Poster/Badges section, which generated from registration details, and I can choose under the registration pages (as a Ticket), so I don’t need to re–code any source for it. But its true, we can add only one attachement for one registration, but its enough for us, now.
Maybe its useful for others, too.
Thanks again.


#5

Hi All,
Now, I have a little more time to prepare this attachement. By the badge template, I create a new “ticket” with some registration data, and fixed texts, but I miss some fields, and I’m affraid, I’ve lost the track.

I’d like to put here the registration submitted date (as I seen: submitted_dt), and the choosen items from the filled form (with item title, value, and cost), like in the “Invoice” block of email registration notification.
Also I’d like to add new placeholder text field - maybe it will works by Penelope earlier comment.
I put new rows in the designer/placeholders.py, and the placeholders/registration.py, run the touch on the wsgi, but I seen nothing changed.
Also, when I changed the “Ticket.pdf” filename, to “xxx-xxx.pdf” (here: modules\events\registration\util.py), and run the touch, I saw nothing change, too.
It’s sure, that I forgot any step, just I don’t know what…, yet.
I’m beginner in py, but i’d like to understand, and make it, so could you suggest me any guides for it, or have you any suggestion?
Its no problem, if I have to start it from the beggining, just I have to solve it within couple of days…
Thanks a lot, again.
Renata


#6

Please do not edit the code of the Indico core to add new placeholder fields. This can be done in a plugin by connecting to the get_placeholders signal when it’s sent by the designer-fields sender.

You can find an example for this in the CERN site access plugin:

For the placeholder itself you’d implement it like this (untested):

class RegistrationDatePlaceholder(DesignerPlaceholder):
    group = 'registrant'
    name = 'registration_submitted_dt'
    description = _("Registration date")

    @classmethod
    def render(cls, registration):
        return to_unicode(format_datetime(registration.submitted_dt, format='d MMM YYY', locale='en_GB'))

PS: It should work as well when you add it to indico/modules/designer/placeholders.py as long as you add it to the __all__ list on top of that file, but since changes to the Indico core are lost during updates we don’t recommend doing that!


#7

Thanks a lot, again!
I’ check it prompt.


#8

I tried it, but it doesn’t works for me. Have it - somewhere - any short, step by step description about using signals/plugins? I’ve already read this (https://docs.getindico.io/en/stable/installation/plugins/), and this (https://docs.getindico.io/en/stable/plugins/), but its seems, these not enough for me, as a beginner. I did able to shutdown our celery.service… :smiley:
Or have any other platform to talk about it? (Because, I would not like to share my “first steps” for everbody … )
Thanks again.
R.


#9

We have some docs here: https://docs.getindico.io/en/stable/plugins/

But the best source of information is looking at existing plugins…

Don’t worry, everyone was a beginner once! If you want something less permanent, feel free to join our IRC chat though. It’s #indico on Freenode, also accessible via Matrix.


#10

Thank you! I don’t give up, just it seems, need a bit more time for it. :slight_smile: May I’ll find you today, by chat.


#11

Sorry, but - unfortunately, I’m full - I hadn’t enough time for chat, and meantime we must to opened our registration forms. So, perhaps - it is little critically to rewrote the system. I’d like to find the best/smooth/most simple solution for it. But, when I tried to put - at first - the new placeholder to the placeholders.py, then run the touch, the service was run out. So, I think, it would be the best, if I put it - which is in your plugins, as you showned me above - to any other plugin, but I’m not sure, where will it works. Could you help me in this case? Thanks so much!