Пример #1
0
    def create_message(self, id, backend):
	fake_connection = Connection(identity=str(id))
	fake_connection.backend, created = Backend.objects.get_or_create(name=backend)
	fake_connection.save()
	message = Message(status='Q', direction="O")
	message.connection = fake_connection

	message.batch = self.batch1;
	message.save()
	return message
 def create_message_without_batch(self, id, backend):
     fake_connection = Connection(identity=str(id))
     fake_connection.backend, created = Backend.objects.get_or_create(name=backend)
     fake_connection.save()
     message = Message(status='Q', direction="O")
     message.text = "this is an important message"
     message.connection = fake_connection
     message.batch = None
     message.save()
     return message
Пример #3
0
    def create_message(self, id, backend):
        fake_connection = Connection(identity=str(id))
        fake_connection.backend, created = Backend.objects.get_or_create(
            name=backend)
        fake_connection.save()
        message = Message(status='Q', direction="O")
        message.connection = fake_connection

        message.batch = self.batch1
        message.save()
        return message
Пример #4
0
def populate_user(row):
    for k, v in row.items():
        if v == '':
            del row[k]

    NON_REQUIRED_FIELDS = ['email', 'supervisor', 'phone']

    for k, v in row.iteritems():
        if v is None and k not in NON_REQUIRED_FIELDS:
            print '%s is required' % k
            return

    try:
        User.objects.get(username=row['username'])
        print 'user %s already exists' % row['username']
        return
    except User.DoesNotExist:
        pass

    ALLOWED_STATES = ('fct', 'nasawara', 'national')
    if not row['state'] in ALLOWED_STATES:
        print 'state must be one of: %s' % ', '.join(ALLOWED_STATES)
        return

    ALLOWED_PROGRAMS = ('pbf', 'fadama', 'both')
    if not row['program'] in ALLOWED_PROGRAMS:
        print 'program must be one of: %s' % ', '.join(ALLOWED_PROGRAMS)
        return

    PROGRAM_PERMS = {
        'pbf': 'pbf_view',
        'fadama': 'fadama_view',
    }
    perms = []
    if row['program'] == 'both':
        perms.extend(PROGRAM_PERMS.values())
    else:
        perms.append(PROGRAM_PERMS[row['program']])

    is_supervisor = (row.get('supervisor', '').lower() in ('y', 'yes', 'x'))
    if is_supervisor:
        perms.append('supervisor')

    def add_perm(u, perm_name):
        u.user_permissions.add(Permission.objects.get(codename=perm_name))

    u = User()
    u.username = row['username']
    u.first_name = row['first name']
    u.last_name = row['last name']
    u.email = row.get('email', '*****@*****.**')
    u.set_password(row['password'])
    u.save()

    for p in perms:
        add_perm(u, p)
    u.save()

    try:
        contact = Contact.objects.get(user__username=row['username'])
        return
    except Contact.DoesNotExist:
        pass

    if row['state'] == 'national':
        loc = Location.objects.get(slug='nigeria')
    else:
        loc = Location.objects.get(type__slug='state', slug=row['state'])

    c = Contact()
    c.name = '%s %s' % (u.first_name, u.last_name)
    c.first_name = u.first_name
    c.last_name = u.last_name
    c.email = row.get('email', '')
    c.user = u
    c.location = loc
    c.save()

    backend = Backend.objects.get(name='httptester')

    if row.get('phone'):
        conn = Connection()
        conn.backend = backend
        conn.identity = row['phone']
        conn.contact = c
        conn.save()
Пример #5
0
def register_user(request, template="malawi/register-user.html"):
    context = dict()
    context['facilities'] = SupplyPoint.objects.filter(type__code="hf").order_by('code')
    context['backends'] = Backend.objects.all()
    context['dialing_code'] = settings.COUNTRY_DIALLING_CODE # [sic]
    if request.method != 'POST':
        return render_to_response(template, context, context_instance=RequestContext(request))

    id = request.POST.get("id", None)
    facility = request.POST.get("facility", None)
    name = request.POST.get("name", None)
    number = request.POST.get("number", None)
    backend = request.POST.get("backend", None)

    if not (id and facility and name and number and backend):
        messages.error(request, "All fields must be filled in.")
        return render_to_response(template, context, context_instance=RequestContext(request))
    hsa_id = None
    try:
        hsa_id = format_id(facility, id)
    except IdFormatException:
        messages.error(request, "HSA ID must be a number between 0 and 99.")
        return render_to_response(template, context, context_instance=RequestContext(request))

    try:
        parent = SupplyPoint.objects.get(code=facility)
    except SupplyPoint.DoesNotExist:
        messages.error(request, "No facility with that ID.")
        return render_to_response(template, context, context_instance=RequestContext(request))

    if Location.objects.filter(code=hsa_id).exists():
        messages.error(request, "HSA with that code already exists.")
        return render_to_response(template, context, context_instance=RequestContext(request))

    try:
        number = int(number)
    except ValueError:
        messages.error(request, "Phone number must contain only numbers.")
        return render_to_response(template, context, context_instance=RequestContext(request))

    hsa_loc = Location.objects.create(name=name, type=config.hsa_location_type(),
                                          code=hsa_id, parent=parent.location)
    sp = SupplyPoint.objects.create(name=name, code=hsa_id, type=config.hsa_supply_point_type(),
                                        location=hsa_loc, supplied_by=parent, active=True)
    sp.save()
    contact = Contact()
    contact.name = name
    contact.supply_point = sp
    contact.role = ContactRole.objects.get(code=config.Roles.HSA)
    contact.is_active = True
    contact.save()

    connection = Connection()
    connection.backend = Backend.objects.get(pk=int(backend))
    connection.identity = "+%s%s" % (settings.COUNTRY_DIALLING_CODE, number) #TODO: Check validity of numbers
    connection.contact = contact
    connection.save()

    messages.success(request, "HSA added!")

    return render_to_response(template, context, context_instance=RequestContext(request))