Beispiel #1
0
def add_user_to_group (request, user, language, user_added_phone, group_name):
    user_added = Users.resolve_or_create(request, user, language, user_added_phone)
    group = Groups.resolve (user, group_name)
    
    if group is None:
        return language.unknown_group (group_name)
    
    if not user_added.has_empty_slot ():
        return language.user_has_no_empty_slots ()
    
    group.add_user (user, user_added)
    
    return language.added_user_to_group (user, group)
Beispiel #2
0
def invite_user_to_group (request, user, language, group_name_or_slot, invite_user_phone, smsc = 'mosms'):
    from django.conf import settings
    
    #logger.debug('request: %s, user: %s, language: %s, group: %s, phone: %s, smsc %s' % (request, user, language, group_name_or_slot, invite_user_phone, smsc))
    
    invited_user_list = invite_user_phone.replace("+", " ").replace(",", " ").split()
    name = ''
    
    if not invited_user_list[0].isdigit():
        name = invited_user_list[0]
        #if user hasnt registered a name add that as their name
        if not user.name_text:
            user.set_name(name)
        invited_user_list.remove(name)
    
    logger.debug ('group: %s users: %s' % (group_name_or_slot, invited_user_list))
    
    msg_list = []
    
    group = Groups.resolve (user, group_name_or_slot)
    
    if group is None:
        return language.unknown_group (group_name_or_slot)
    
    if not user.is_admin (group):
        if not group.is_public ():
            msg_list.append(language.cannot_invite_user ())
    
    if len(msg_list) > 0:
            return string.join(msg_list, " ")
    
    msg_list = []
    valid_users = []
    invalid_users = []
    
    for user_phone in invited_user_list:
        #make sure its a number
        phone_regex = re.compile("^\d+$")
        if not phone_regex.match(user_phone):
            continue
        invited_user = Users.resolve_or_create(request, user, language, user_phone)
        
        if invited_user == None:
            invalid_users.append(user_phone)
        else:
            if not invited_user.is_member(group):
                user.invite_user (invited_user, group)
                if invited_user.is_mine (group): group.group_name  = 'mine'
            valid_users.append(user_phone)

            origin = settings.SMS_VOICE[smsc]
            
            global_send_sms ("+" + invited_user.phone_number, name + " <"
                    + re.sub('^2547', '07', user.phone_number) + "> invited you to the "
                    + group.group_name + " group. Reply: join "
                    + group.group_name + ", to get their messages. "
                    + "Create ur own groups and tangaza by flashing %s. Enjoy!" % settings.SMS_VOICE['VOICE_%s' % origin], origin)
    
    if len(valid_users) > 0:
        valid_users = string.join(valid_users, ",")
        msg_list.append(language.invited_user (valid_users, group))
    
    if len(invalid_users) > 0:
        invalid_users = string.join(invalid_users, ",")
        msg_list.append(language.unknown_user (invalid_users))
    
    return string.join(msg_list, " ")