diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-12-20 09:39:47 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-12-20 09:39:47 +0700 |
| commit | 9ba922eded6d752c2a4299c9c444238309877bb9 (patch) | |
| tree | 7bdd165e374e39fc8ee69cd58c2032403f9051f3 | |
| parent | 05d8edef111df1f32be76f3fdfaabfb1c8057644 (diff) | |
<iman> update code
| -rw-r--r-- | indoteknik_custom/models/ir_actions_report.py | 1 | ||||
| -rw-r--r-- | indoteknik_custom/models/website_telegram.py | 38 |
2 files changed, 29 insertions, 10 deletions
diff --git a/indoteknik_custom/models/ir_actions_report.py b/indoteknik_custom/models/ir_actions_report.py index f6ef4e3e..b7d4e372 100644 --- a/indoteknik_custom/models/ir_actions_report.py +++ b/indoteknik_custom/models/ir_actions_report.py @@ -16,6 +16,7 @@ class IrActionsReport(models.Model): telegram_data = { 'tittle': sale_order.name, 'about': sale_order.name, + 'user_id': sale_order, 'id_data': sale_order.id, 'username': '@' + sale_order.name.replace('/', '') } diff --git a/indoteknik_custom/models/website_telegram.py b/indoteknik_custom/models/website_telegram.py index a3c64c7e..ade6c326 100644 --- a/indoteknik_custom/models/website_telegram.py +++ b/indoteknik_custom/models/website_telegram.py @@ -33,8 +33,13 @@ class WebsiteTelegram(models.Model): @api.depends('user_id') def _compute_username_to_add(self): - for name in self.user_id: - self.username_to_add.append(str(name.mobile)) + for record in self: + usernames = [] + for partner in record.user_id: + if partner.mobile: # Pastikan mobile tidak None + usernames.append(partner.mobile) + # Gabungkan semua nomor menjadi satu string, dipisahkan koma + record.username_to_add = ', '.join(usernames) def create_channel(self, *args, **kwargs): asyncio.run(self._async_create_channel()) @@ -125,14 +130,27 @@ class WebsiteTelegram(models.Model): 27799517, 'df8ee44b0ed11108245037d47b511201') as client: channel = await client.get_entity(self.invite_link) - for name in self.username_to_add: - data = name - user_to_add = await client.get_entity(data) - result_add_user = await client(functions.channels.InviteToChannelRequest( - channel=channel, - users=[user_to_add.id], - )) - result_massage = await client(SendMessageRequest(channel, message)) + # Memproses username_to_add menjadi list + usernames = self.username_to_add.split(', ') # Pisahkan berdasarkan koma dan spasi + + # Iterasi untuk setiap username + for username in usernames: + if username: # Pastikan username tidak kosong + try: + # Mendapatkan entitas user berdasarkan username + user_to_add = await client.get_entity(username) + + # Mengundang user ke channel + result_add_user = await client(functions.channels.InviteToChannelRequest( + channel=channel, + users=[user_to_add.id], + )) + except Exception as e: + # Tangani error (misal user tidak ditemukan atau sudah ada di channel) + print(f"Error adding user {username}: {e}") + + # Mengirim pesan ke channel + result_message = await client(SendMessageRequest(channel, message)) def test_send(self): try: |
