Skip to content
This repository has been archived by the owner on Sep 25, 2023. It is now read-only.

Commit

Permalink
Add Wizard used by action templates to put SMS message to the Outbox …
Browse files Browse the repository at this point in the history
…folder, ready to send
  • Loading branch information
oriolpiera committed Jan 4, 2021
1 parent b2bdb44 commit 3aab384
Show file tree
Hide file tree
Showing 10 changed files with 443 additions and 204 deletions.
11 changes: 11 additions & 0 deletions powersms_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,17 @@ class PowersmsCoreAccounts(osv.osv):
def do_approval(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'approved'}, context=context)

def filter_send_sms(self, cr, uid, sms_str):
if not sms_str:
sms_str = ''
response = ''
for e in sms_str.split(','):
if self.pool.get('powersms.smsbox').check_mobile(e.strip()):
if response:
response += ','
response += e
return response

_columns = {
'name': fields.char('SMS Account name',
size=64, required=True,
Expand Down
124 changes: 62 additions & 62 deletions powersms_core_view.xml
Original file line number Diff line number Diff line change
@@ -1,72 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!--SMS client Form view -->
<record model="ir.ui.view" id="powersms_core_accounts_form">
<field name="name">powersms.core_accounts.form</field>
<field name="model">powersms.core_accounts</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Power SMS Configuration">
<group colspan="2">
<field name="name" select="1" />
</group>
<notebook colspan="4">
<page string="Outgoing">
<separator string="Server Information" colspan="4" />
<group col="2" colspan="2">
<field name="user" select="2" colspan="2" />
<field name="api_server" select="1" colspan="2" />
<field name="tel_id" select="1" colspan="2" />
</group>
<group col="2" colspan="2">
<field name="api_uname" select="1" colspan="2" />
<field name="api_pass" password="True" colspan="2" />
<data>
<!--SMS client Form view -->
<record model="ir.ui.view" id="powersms_core_accounts_form">
<field name="name">powersms.core_accounts.form</field>
<field name="model">powersms.core_accounts</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Power SMS Configuration">
<group colspan="2">
<field name="name" select="1" />
</group>
<notebook colspan="4">
<page string="Outgoing">
<separator string="Server Information" colspan="4" />
<group col="2" colspan="2">
<field name="user" select="2" colspan="2" />
<field name="api_server" select="1" colspan="2" />
<field name="tel_id" select="1" colspan="2" />
</group>
<group col="2" colspan="2">
<field name="api_uname" select="1" colspan="2" />
<field name="api_pass" password="True" colspan="2" />
<button name="check_outgoing_connection" type="object" string="Check Outgoing Connection" />
</group>
</page>
<page string="Security" attrs="{'invisible':[('company','!=','yes')]}">
<field name="allowed_groups" attrs="{'required':[('company','=','yes')]}" />
</page>
</notebook>
<field name="state" select="1" colspan="2" />
<group col="2">
<button string="Approve Account" name="button_approval" states="draft" type="workflow" colspan="2" />
<button string="Suspend Account" name="button_suspended" states="approved" type="workflow" colspan="2" />
<button string="Request Re-activation" name="get_reapprove" states="suspended" type="workflow" colspan="2" />
</group>
</form>
</field>
</record>
</group>
</page>
<page string="Security" attrs="{'invisible':[('company','!=','yes')]}">
<field name="allowed_groups" attrs="{'required':[('company','=','yes')]}" />
</page>
</notebook>
<field name="state" select="1" colspan="2" />
<group col="2">
<button string="Approve Account" name="button_approval" states="draft" type="workflow" colspan="2" />
<button string="Suspend Account" name="button_suspended" states="approved" type="workflow" colspan="2" />
<button string="Request Re-activation" name="get_reapprove" states="suspended" type="workflow" colspan="2" />
</group>
</form>
</field>
</record>

<record model="ir.ui.view" id="powersms_core_accounts_tree">
<field name="name">powersms.core_accounts.tree</field>
<field name="model">powersms.core_accounts</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SMS Server">
<field name="name" select="1" />
<field name="tel_id" select="1" />
<field name="api_uname" select="1" />
<field name="user" select="1" />
<field name="api_server" select="1" />
<field name="state" select="1" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="powersms_core_accounts_tree">
<field name="name">powersms.core_accounts.tree</field>
<field name="model">powersms.core_accounts</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SMS Server">
<field name="name" select="1" />
<field name="tel_id" select="1" />
<field name="api_uname" select="1" />
<field name="user" select="1" />
<field name="api_server" select="1" />
<field name="state" select="1" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_powersms_core_accounts_tree_all">
<field name="name">All Accounts</field>
<field name="res_model">powersms.core_accounts</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="powersms_core_accounts_tree" />
</record>
<field name="name">All Accounts</field>
<field name="res_model">powersms.core_accounts</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="powersms_core_accounts_tree" />
</record>

<menuitem name="Power SMS" id="menu_powersms_administration_server" />
<menuitem name="Configuration" id="menu_powersms_configuration_server" parent="menu_powersms_administration_server" />
<menuitem name="All Accounts" id="menu_powersms_core_accounts_all" parent="menu_powersms_configuration_server" action="action_powersms_core_accounts_tree_all" groups="res_groups_psmsmanager" />
<menuitem name="Power SMS" id="menu_powersms_administration_server" />
<menuitem name="Configuration" id="menu_powersms_configuration_server" parent="menu_powersms_administration_server" />
<menuitem name="All Accounts" id="menu_powersms_core_accounts_all" parent="menu_powersms_configuration_server" action="action_powersms_core_accounts_tree_all" groups="res_groups_psmsmanager" />

</data>
</data>
</openerp>


Expand Down
10 changes: 10 additions & 0 deletions powersms_smsbox.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
from osv import osv, fields
import re

class PowersmsSMSbox(osv.osv):
_name = "powersms.smsbox"
_description = 'Power SMS SMSbox included all type inbox,outbox,junk..'
_rec_name = "psms_subject"
_order = "date_sms desc"

def check_mobile(self, mobile_number):
if not re.match(r"((?:\+34)*|(?:0034)*)6[0-9]{8}|((?:\+34)*|(?:0034)*)7[0-9]{8}", mobile_number):
return False
return True

def is_valid(self, cursor, uid, sms_id, context=None):
mail = self.read(cursor, uid, sms_id, ['psms_to'], context)
return self.check_mobile(mail['psms_to'])

_columns = {
'psms_account_id' :fields.many2one(
'powersms.core_accounts',
Expand Down
Loading

0 comments on commit 3aab384

Please sign in to comment.