Example #1
0
def messageList2(request,type=None,channel=None):
    """
        Shows a message list
    """
    info(request, 'messageList', 'Listing messages')
    setLeftMenu(request, messageMenu(request), _('Messages'))
    crumbs = ((_('Home'), reverse('root')),)
    extra_context = {}
    if type:
        extra_context['typeName'] = MESSAGE_TYPES[type]
        typeName = MESSAGE_TYPES[type]

        if typeName == MESSAGE_TYPES[MESSAGE_TYPE_INDIVIDUAL]:
            crumbs += ((_('Individual messages'), reverse('messagelist', args = [MESSAGE_TYPE_INDIVIDUAL])),)
            extra_context['type'] = MESSAGE_TYPE_INDIVIDUAL
        elif typeName == MESSAGE_TYPES[MESSAGE_TYPE_CHANNEL]:
            crumbs += ((_('Channel messages'), reverse('messagelist', args = [MESSAGE_TYPE_CHANNEL])),)
            extra_context['type'] = MESSAGE_TYPE_CHANNEL
        else:
            error(request, 'messageList2', 'Trying to list messages of unknown type')
            raise Http404

    if channel:
        extra_context['channel'] = channel
        
    extra_context['profile'] = request.session['profile']
    extra_context['crumbs'] = crumbs
    kwargs = {'type': type, 'id': request.user.id}
    extra_context['filterForm'] = FilterForm(**kwargs)
    return render_to_response(TEMPLATES['message_list'], extra_context, RequestContext(request))
Example #2
0
def ajax_gen_filter(request,type):
    """

    """
    info(request,"gen_ajax_filter","generate filter to message_list")
    if not request.is_ajax():
        warning(request,"gen_ajax_filter","This view is only access in Ajax mode")
        raise Http404
    if (request.method != 'POST'):
        warning(request,"gen_ajax_filter","This view is only access in POST method")
        raise Http404

    kwargs = {'type':type, 'id':request.user.id}
    form = FilterForm(request.POST,**kwargs)
    if not form.is_valid():
        return HttpResponse(simplejson.dumps({"result": False,'filter':" ", 'ajax': True, 'errors':display_form(form)}))
    filter = ""
    if type == MESSAGE_TYPE_INDIVIDUAL:
        for status in form.cleaned_data['status']:
            filter += ",status:%s" % status
        if form.cleaned_data['mobile'] != '':
            filter += ",mobile:"+form.cleaned_data['mobile']
    else:
        filter += ",channel:%s" % form.cleaned_data['channel']
    if form.cleaned_data['initDate'] != None:
        filter +=",creationDateSince:"+str(form.cleaned_data['initDate']).replace(' ','_').replace(':','-')
    if form.cleaned_data['endDate'] != None:
        filter +=",creationDateUntil:"+str(form.cleaned_data['endDate']).replace(' ','_').replace(':','-')
    if form.cleaned_data['mms'] != None:
        filter +=",mms:"+str(form.cleaned_data['mms'])
    filter = filter[1:len(filter)]
    info(request,"gen_ajax_filter","generate valid filter")
    return HttpResponse(simplejson.dumps({"result": True,'filter':filter,'ajax':True }))
Example #3
0
def filterQs(request,type=None):
    info(request,"filterQs","enter in filterQs")
    filters = request.GET['filter'].split(',')
    filter = {}
    status = []
    for f in filters:
        k,v = f.split(':')
        if k == 'creationDateSince':
            v = datetime.datetime.strptime(v, "%Y-%m-%d_%H-%M-%S")
            k = 'creationDate__gte' 
        elif k == 'creationDateUntil':
            v = datetime.datetime.strptime(v, "%Y-%m-%d_%H-%M-%S")
            k = 'creationDate__lte'  
        elif k == 'mms':
            k = 'body__mms'
            v = 1 if v == 'True' else 0
        elif k == 'channel':
            k = 'channelmessage__channel__id'
        elif k == 'mobile':
            k = 'mobile__icontains'
        if k != 'status':
            filter[str(k)] = v
        else:
            status.append(int(v))
    if status:
        filter['smshistory__server_status__in'] = status
    return filter
Example #4
0
def deleteChannel(request, object_id):
    """
        #TODO
    """
    setLeftMenu (request, channelMenu(), _('Channels'))
    crumbs = ( ( _('Home') , reverse('root') ),
               ( _('Channel List') , reverse('showList')  ),
               ( _('Delete Channel %(objectId)s') % {'objectId': object_id} , 
                        reverse('delete_channel',args=[object_id])),
             )
    info (request, 'deleteChannel', 'enter to delete channel %(object)s' % {'object':object_id})
    try:
        object = Channel.objects.get(pk = object_id)
    except Channel.DoesNotExist:
        error (request, 'deleteChannel', 
                        _('Trying to delete a unexisting channel'))
        object = None   
    if request.POST:
        object.destructionDate = datetime.datetime.now()
        object.active = False
        object.save()
        info(request, 'deleteChannel', 
                _("Channel %(object)s have been deleted" % {'object': object}))
        return HttpResponseRedirect(reverse('showList'))
    else:
        return render_to_response(TEMPLATES['delete_channel'], {
                'object': object,
                'profile' : request.session['profile'],
                'crumbs' : crumbs
            }, RequestContext (request))
Example #5
0
def ajax_filter(request,type=None):
    info(request,"ajax_filter","create queryset of message list")
    if not request.is_ajax():
        warning(request,"ajax_filter","This view is only for ajax")
        raise Http404
    filter = {}
    if (('filter' in request.GET) & (request.GET['filter'] != '')):
        filter = filterQs(request,type)
    if (checkAdmin(request.user)):
        if type ==  MESSAGE_TYPE_INDIVIDUAL:
            filter['mobile__isnull'] = False
        elif type == MESSAGE_TYPE_CHANNEL:
            filter['mobile__isnull'] = True
        qs = Message.objects.filter(**filter).order_by('-creationDate')
    else:
        if type == MESSAGE_TYPE_INDIVIDUAL:
            accs = Account.objects.filter(customer=Customer.objects.get(id=request.user.id))
            filter['account__in'] = accs
            filter['mobile__isnull'] = False
            qs = Message.objects.filter(**filter).order_by('-creationDate')
        elif type == MESSAGE_TYPE_CHANNEL:
            chnls = Channel.objects.filter(customer=Customer.objects.get(id=request.user.id))
            filter['id__in'] = [q.message.id for q in ChannelMessage.objects.filter(channel__in=chnls).order_by('channel')]
            qs = Message.objects.filter(**filter).order_by('-creationDate')
    data = {'data':qs,'type':type}
    return render_to_response(TEMPLATES['ajax_filter'], data, RequestContext( request ) )
Example #6
0
def ajaxDeleteSubscriber(request):
    info(request,"ajaxDeleteSubscriber","Deleting subscriber")
    if request.is_ajax():
        if "checked" in request.GET:
            checked = request.GET['checked']
            # Check if there are marked channels
            if checked:
                list = checked.split(",")
                channel = Channel.objects.get(pk = request.GET['channel'])
                subscriber = Subscriber.objects.filter(id__in=list)
                if len(subscriber) == len(list):
                    for s in subscriber:
                        s.channels.remove(channel)
                        if not s.channels.all().count():
                            s.delete()
                else:
                    warning(request,"ajaxDeleteSubscriber","not filter same number of item than items in list")
                    return HttpResponse(simplejson.dumps({'data':False,'ajax':False}))
            return HttpResponse(simplejson.dumps({'data':True,'ajax':False}))
        else:
            warning(request,"ajaxDeleteSubscriber","not select any subscriber to delete")
            return HttpResponse(simplejson.dumps({'data':False,'ajax':False}))
    else:
        warning(request,"ajaxDeleteSubscriber","this view is only access by ajax")
        raise Http404
Example #7
0
def gestion_direcciones(request, id=None):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] = ((_('Home'), reverse('root')), (_('Contact address'), reverse('contacto_direcciones', args=[id])),)
    info(request, 'gestion_direcciones', 'Management contact address')
    setLeftMenu(request, contactMenu(request), _(u'Summary'))
    item = get_object_or_404(Contacto, pk=id)
    form = None
    if request.POST:
        form = item.direccion_form()
        form.setData(request.POST)
        new_form = DireccionForm(request.POST)
        if form.is_valid() and new_form.is_valid():
            item.update_dir(form.cleaned_data)
            if new_form.cleaned_data['tipo']:
                dato = new_form.save(item)
        else:
            context['form'] = form
            context['new_form'] = form
    if not 'form' in context:
        context['form'] = item.direccion_form()
        context['new_form'] = DireccionForm() 
    context['object'] = item 
    context['label'] = _(u'address')
    return render_to_response('addressbook/gestion_datos.html', context, rc)
Example #8
0
def editItem(request, name, id, form=None, template_name=EDIT_ITEM_TEMPLATE, delete=False):
    """
        Edit an user item profile
    """    
    info (request, 'editItem', 'Editing an item')
    try:        
        obj = getObj(request, name, id)
    except Http404:
        warning (request, 'editItem', "Requested an item which doesn't exist: %s" % name)
        raise Http404
    if delete:
        obj.delete()
        return HttpResponseRedirect(reverse("showItem", args=[name]))    
    baseItemMenu(request, name)    
    form = getForm(request, name, obj, editing=True)
    
    if form.is_valid():
            form.save(commit=True)
            return HttpResponseRedirect(reverse("showItem", args=[name]))
    
    return render_to_response(template_name, { "form": form,
                                                "name": name,
                                                "id": id,
                                                'profile':    request.session['profile'],
                                            }, context_instance=RequestContext(request))
Example #9
0
def importar(request, channel = False):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    rev = reverse('importar_agenda')
    if channel:
        rev = reverse('importar_canal')
    context['crumbs'] = ( ( _('Home') , reverse('root') ),
                          ( _('Import') , rev ),
                        )
    info(request, 'importar', 'Import process')
    setLeftMenu(request, actionMenu(request), _(u'Database actions'))
    if request.method == "POST":
        if channel:
            form = ChannelFileDirForm(request.POST, request.FILES)
        else:
            form = FileDirForm(request.POST, request.FILES)
        if form.is_valid():
            result = Contacto.importar(request.user, form.cleaned_data, channel)
            if result:
                context['msg'] = _(u'Import process done. Total new contacts: %d' % result)
            else:
                context['msg'] = _(u'There were errors in import process.')
        else:
            context['form'] = form
    if not 'form' in context:
        if channel:
            context['form'] = ChannelFileDirForm()
        else:
            context['form'] = FileDirForm()
    context['label'] = _(u'Import')
    return render_to_response('addressbook/importar.html', context, rc) 
Example #10
0
def logout_view (request):
    """
        Logout view
    """
    info (request, 'logout_view', 
                    'User %(username)s logged out ' % {'username':request.user.username}
         )
    logout(request)
    #return HttpResponseRedirect("/")
    return HttpResponseRedirect( reverse('root') )
Example #11
0
def showIncomingMessages(request):
    """
        Show general information about an item family
    """
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] =  (_('Incoming messages'), reverse('showIncomingMessages')) 
    info(request, 'showIncomingMessages', 'Showing incoming messages specific information')
    setLeftMenu(request, baseItemMenu(), _(u'Summary'))
    context['object_list'] = IncomingMessage.objects.all() 
    return render_to_response('incomingmessage_archive.html', context, rc)
Example #12
0
def getListFromQuery(request, objModel, id=None, name=None):
    """
        Generates a list from a object, ready for template using.   
        
        A list is returned to the template, containing for every index:
        - Global name of the item
        - Name of the fields
        - Data contained on a list
        
        It is assumed that all the variables which are sent doesn't have any errors.
        This is checked before in the previous view.
    """
    info(request, 'showItem', 'Getting a list from a query')
    if 'label' in ITEM_URL_DICT[name].keys():
        globalname = ITEM_URL_DICT[name]['label']
    else:
        globalname = _(objModel._meta.verbose_name)
    # Get special queries if available.
    if name in ITEM_URL_QUERY.keys():
        allobj = objModel.objects.filter(**ITEM_URL_QUERY[name]).values()
    else:
        allobj = objModel.objects.values()        
    if not allobj:        
        return [globalname, None, None, name]
    
    fkeys = getKeys(objModel, urlname=name)
    cappedObj = []
                        
    for obj in allobj:
        # The django's id is always sent on first place
        block = []
        # Then append the rest of fields.
        # This is done because we want to keep the right order between the keys and the data.
        block.append(obj['id'])        
        for keyfield in fkeys:
            getRow(request, block, keyfield, obj, urlname=name)        
        cappedObj.append(block)
    # Get a better name for a key if available, and translate it    
    pretty_keys = []
    for key in fkeys:
        if key in VERBOSE_KEYS.keys():             
            pretty_keys.append(VERBOSE_KEYS[key] )
            continue                            
        for itemtest in objModel._meta.fields:                
            if key in itemtest.name:
                tempvar = itemtest.verbose_name
                pretty_keys.append(tempvar)
                break
            # Checking fields with '_id'            
        else:
            pretty_keys.append(str(_(key) ) )
    item = [globalname, pretty_keys, cappedObj, name]    
    return item
Example #13
0
def eliminar_contactos(request, id):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] = ((_('Home'), reverse('root')), (_('Delete contact'), reverse('contacto_eliminar', args=[id])),)
    info(request, 'eliminar_contactos', 'Deleting a contact')
    setLeftMenu(request, contactMenu(request), _(u'Summary'))
    item = get_object_or_404(Contacto, pk = id)
    if request.method == 'POST':
        item.delete()
        return HttpResponseRedirect(reverse('contacto_listar'))
    context['object'] = item
    return render_to_response('addressbook/eliminar_contacto.html', context, rc)
Example #14
0
def deleteMessage(request, object_id,type):

    object = None
    msg_object = None
    crumbs = ( ( _('Home') , reverse('root') ),
               ( _('Message List') , reverse('messagelist',args=[type])  ),
               ( _('Delete Message %(objectId)s') % {'objectId': object_id} ,
                        reverse('deletemessage',args=[type,object_id])),
             )
    info (request, 'deleteMessage', 'deleting message')
    setLeftMenu (request, messageMenu (request), _('Message'))
    if type == 'Individual':
        try:
            object = Message.objects.get(pk = object_id)
        except Message.DoesNotExist:
            error (request, 'deleteMessage',
                        _('Trying to delete a unexisting message'))
    elif type == 'Channel':
        try:
            msg_object = Message.objects.get(pk=object_id)
            object = msg_object.channelmessage_set.all()[0]
        except (ChannelMessage.DoesNotExist, Message.DoesNotExist):
            error (request, 'deleteMessage',
                        _('Trying to delete a unexisting message'))
    if request.POST:
        if object.can_be_del():
            object.delete()
            if msg_object: 
                msg_object.delete()
            info (request, 'deleteMessage',
                _('Message %(object)s have been deleted' % {'object': object.__unicode__()}))
            return HttpResponseRedirect(reverse('messagelist',args=[type]))
        else:
            error (request, 'deleteMessage',
                        _('Can not delete message %(objectID)s') %{'objectID':object.id})
            return render_to_response(TEMPLATES['errors'],
                                      {
                                        'profile': request.session['profile'],
                                        'crumbs': crumbs,
                                        'showInfoToUser': _('Can not delete message %(objectID)s') %{'objectID':object.id},
                                        'type': type
                                      },RequestContext (request)
                                      
                    )
    else:
        return render_to_response(TEMPLATES['delete_message'], {
                'object': object,
                'profile' : request.session['profile'],
                'crumbs' : crumbs,
                'type': type
            }, RequestContext (request))
Example #15
0
def lista_contactos(request):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] = ( ( _('Home') , reverse('root') ),
                          ( _('Contact list') , reverse('contacto_listar') ),
                        )
    info(request, 'lista_contactos', 'Listing contacts')
    setLeftMenu(request, contactMenu(request), _(u'Summary'))
    context['object_list'] = request.user.contacto_set.all()
    if request.POST:
        data = request.POST
        msg = Message.easy_create(data['text'], adapt_mobile(data['mobile']), request.user)
        context['msg'] = msg
    return render_to_response('addressbook/listar_contactos.html',context, rc)
Example #16
0
def ajaxNewChannel(request):
    info(request,"ajaxNewChannel","Creating new Channel")
    if request.is_ajax():
        kwargs = {'user':request.user}
        newForm = ChannelForm(request.POST,**kwargs)
        if newForm.is_valid():
            newForm.save()
            return HttpResponse(simplejson.dumps({'data':True,'ajax':True,'errors':False}))
        else:
            warning(request,"ajaxNewChannel","Not valid form")
            return HttpResponse(simplejson.dumps({'data':False,'ajax':True,
                                                  'errors':display_form(newForm)}))

    else:
        warning(request,"ajaxNewSubscriber","this view is only for ajax")
        raise Http404
Example #17
0
def getForm(request, name='', obj=None, editing=False):
    """
        Returns a form according an url
    """
    info (request, 'getForm', 'Getting a form')
    if editing:
        try:
            form = getReadyForm(request, form=ITEM_URL_DICT[name]['editform'],
                                obj=obj, urlname=name)
            return form
        except KeyError:
            pass
    try:
        form = getReadyForm(request, form=ITEM_URL_DICT[name]['form'], obj=obj, urlname=name)         
    except KeyError:
        error(request, 'getForm', "Form not found for this url: %(name)s" % {'name': name} )
        raise Http404    
    return form
Example #18
0
def getReadyForm(request, form=[], obj=None, urlname=None):
    """
        Decides whenever if a POST form is needed or not.
    """    
    info (request, 'getReadyForm', 'Decides whenever if a POST form is needed or not.')
    kwargs = {}    
    if obj:
        kwargs = {'instance': obj}        
    try:
        if 'language' in ITEM_URL_DICT[urlname]['form_args']:
            kwargs['language'] = request.LANGUAGE_CODE
    except KeyError:
        pass
    if request.method == "POST":
        item = form(request.user.id, request.POST, **kwargs)
    else:
        item = form(request.user.id, **kwargs)    
    return item
Example #19
0
def buscar_contactos(request):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] = ( ( _('Home') , reverse('root') ),
                          ( _('Search contact') , reverse('contacto_buscar') ),
                        )
    info(request, 'buscar_contactos', 'Searching contacts')
    setLeftMenu(request, contactMenu(request), _(u'Summary'))
    if request.POST:
        form = SearchForm(request.POST)
        if form.is_valid():
            context['object_list'] = Contacto.search(form.cleaned_data['search_field'], request.user)
            return render_to_response('addressbook/listar_contactos.html',context, rc)
        else:
            context['form'] = form
    else:
        context['form'] = SearchForm()
    return render_to_response('addressbook/buscar_contactos.html', context, rc)
Example #20
0
def showItemSummary(request, name, template_name=SUMMARY_ITEM_TEMPLATE):
    """
        Show general information about an item family
    """
    info (request, 'showItemSummary', 'Showing showItemSummary')    
    baseItemMenu(request, name)    
    try:
        list = URL_GROUP_ITEMS[name]    
    except KeyError:
        error(request, 'showItemSummary', "Requested a url group which doesn't exist: %s" % name)
        raise Http404
    item = []    
    for url in list:
        item.append(getObj(request, name=url) )
        
    return render_to_response(template_name,
        { "item": item, "name": name, "fullname": getGroupFullname(name),
        "profile" : request.session['profile']},
        context_instance=RequestContext(request))
Example #21
0
def ajax_filter_typesSms(request):
    info(request,"ajaxFilterTypeSms","view types sms for account")
    if request.is_ajax():
        capabilities = {}
        if ('account' in request.GET):
            access = Access.objects.filter(account__exact =
                            Account.objects.get(id=request.GET['account']))
            
            for acc in access:
                capabilities.update(dict(acc.capabilities.values_list())) 
                
        else:
            capabilities = dict(Capabilities.objects.all().values_list())
               
        return render_to_response(TEMPLATES['sms_types'], {'data':capabilities},
                                          RequestContext(request)) 
    else:
        warning(request,"ajaxFilterTypeSms","this view is only for ajax")
        raise Http404
Example #22
0
def ajaxSubscriber(request):
    info(request,"ajaxSubscriber","return list of channel's subscriber")
    if not request.is_ajax():
        warning(request,"ajaxSubscriber","this view is only for ajax")
        raise Http404
    if ('channel' in request.GET) and (request.GET['channel'] != 'undefined'):
        chn = Channel.objects.get(id = request.GET['channel'])
        subs = chn.subscriber_set.values()
        return render_to_response(
            TEMPLATES['ajax_subscriber'],
            { 'data': subs, 'pag_index': settings.SUBSCRIBER_PAGINATE, },
            RequestContext(request)
            )
    subs=None
    return render_to_response(
        TEMPLATES['ajax_subscriber'],
        { 'data': subs, 'pag_index': settings.SUBSCRIBER_PAGINATE, },
        RequestContext(request)
     )
Example #23
0
def gestion_contactos(request, id = None):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    item = None
    if id:
        context['crumbs'] = ((_('Home'), reverse('root')), (_('Edit contact'), reverse('contacto_editar', args=[id])),)
        info(request, 'gestion_contactos', 'Edition a contact')
        item = get_object_or_404(Contacto, pk = id)
        context['label'] = _(u'Edit')
        context['object'] = item
    else:
        context['crumbs'] = ( (_('Home'), reverse('root')), (_('New contact'), reverse('contacto_crear')),)
        info(request, 'gestion_contactos', 'Adding a new contact')
        context['label'] = _(u'New')
    setLeftMenu(request, contactMenu(request), _(u'Summary'))
    if request.POST:
        form = ContactoForm(request.POST, instance = item) if item else ContactoForm(request.POST)
        if not item:
            dato_form = MultiDatoForm(request.POST)
            dir_form = DireccionForm(request.POST)
        if form.is_valid(): 
            item = form.save(request.user)
        if item and not id and dato_form.is_valid() and dir_form.is_valid():
            data = dato_form.cleaned_data   
            if 'clase' in data and 'phone' in data:
                item.create_data(data['clase'], data['phone'])
            if 'email' in data:
                item.create_data(EM_PERSONAL, data['email']) 
            if dir_form.cleaned_data['tipo']:
                dir = dir_form.save(item)
            return HttpResponseRedirect(reverse('contacto_listar'))
        else:
            context['form'] = form
            if not id:
                context['dato_form'] = dato_form
                context['dir_form'] = dir_form
    else:
        context['form'] = ContactoForm(instance = item) if item else ContactoForm()
        if not id:
            context['dato_form'] = MultiDatoForm() 
            context['dir_form'] = DireccionForm(instance = item.direccion()) if item and item.direccion() else DireccionForm() 
    return render_to_response('addressbook/gestion_contactos.html', context, rc)
Example #24
0
def ajaxNewSubscriber(request):
    info(request,"ajaxNewSubscriber","Creating new Subscriber to channel")  
    if request.is_ajax():
        newForm = SubscriberForm(request.POST)
        if not newForm.is_valid():
            return HttpResponse(simplejson.dumps({'data':False,'ajax':True,'errors':display_form(newForm)}))
        elif 'channel' not in request.POST:
            newForm.errors['__all__'] = u"There was an error while trying to choose a channel. Please, try it again."
            return HttpResponse(simplejson.dumps({'data':False,'ajax':True,'errors':display_form(newForm)}))
        else:
            mobile = request.POST['mobile']
            channel = request.POST['channel']
            name = request.POST['name']
            Subscriber.create(mobile, channel, name)
            return HttpResponse(simplejson.dumps({'data':True,'ajax':True,'errors':False,
                                                      'form':display_form(SubscriberForm())
                                                     }))
    else:
        warning(request,"ajaxNewSubscriber","this view is only for ajax")
        raise Http404
Example #25
0
def channelList(request, allow_empty=True):
    """
        Show a list of channels.
    """
    crumbs = (
        ( _('Home'), reverse('root')),
        ( _('Channel List'), reverse('showList')),
    )
    info(request, 'channelList', 'Listing channels')
    setLeftMenu (request, channelMenu (), _('Channels'))
    kwargs = {'user':request.user}
    newForm = ChannelForm(**kwargs)
    extra_context = { 'profile' : request.session['profile'],
                      'crumbs':crumbs,
                      'channelform': newForm
                    }
    return render_to_response(TEMPLATES['channel_list'],
                              extra_context,
                              RequestContext(request)
)
Example #26
0
def update_subscriber(request, id):
    rc = RequestContext(request)
    info(request, 'update_subscriber', 'Updating subscriber')
    setLeftMenu(request, create_subscriber_menu(), _('Channel\'s Subscriber'))
    crumbs = (  ( _('Home'), reverse('root')),
                ( _('Channel\'s Subscriber'), reverse('showSubscriber')),
                ( _('Update Subscriber'), reverse('update_subscriber', args=[id])),
             )
    item = get_object_or_404(Subscriber, pk = id)
    context = {'object': item}
    if request.POST:
        form = SubscriberFullForm(request.user, request.POST, instance = item)
        if form.is_valid():
            item = form.save()
            return HttpResponseRedirect(reverse('showSubscriber'))
        else:
            context['form'] = form
    else:
        context['form'] = SubscriberFullForm(request.user, instance = item)
    context['crumbs'] = crumbs
    context['profile'] = request.session['profile']
    return render_to_response('mt/subscriber_actions.html', context, rc)
Example #27
0
def showSubscriber(request):
    info(request, 'showSubscriber', 'Show subscriber')
    setLeftMenu(request, create_subscriber_menu(), _('Channel\'s Subscriber'))
    context = {}
    context['crumbs'] = (
        ( _('Home'), reverse('root')),
        ( _('Channel\'s Subscriber'), reverse('showSubscriber')),
    )
    channels = ChannelChoice(request.user)
    if (len(channels.fields['channel']._choices) == 0):
        channels = None
    newSubscriber = SubscriberForm()
    return render_to_response(TEMPLATES['show_subscriber'],
                                                {
                                                    'channels': channels,
                                                    'subscriber' : newSubscriber,
                                                    'profile': request.session['profile'],
                                                    'crumbs': context['crumbs'],
                                                    'form_empty': display_form(newSubscriber)
                                                },
                                                RequestContext(request)
                                             )
Example #28
0
def exportar(request):
    rc = RequestContext(request)
    context = {'profile': request.session['profile'] }
    context['crumbs'] = ( ( _('Home') , reverse('root') ),
                          ( _('Export') , reverse('exportar_agenda') ),
                        )
    info(request, 'exportar', 'Export process')
    setLeftMenu(request, actionMenu(request), _(u'Database actions'))
    if request.method == "POST":
        form = FileTypeForm(request.POST)
        if form.is_valid():
            tipo = form.cleaned_data['type']
            result = Contacto.exportar(request.user, tipo)
            if result:
                return HttpResponse(result, mimetype=TIPOS_RESPUESTA[int(tipo)])
            else:
                context['msg'] = _(u'There were errors in export process.')
        else:
            context['form'] = form
    if not 'form' in context:
        context['form'] = FileTypeForm()
    context['label'] = _(u'Export')
    return render_to_response('addressbook/importar.html', context, rc)
Example #29
0
def updateChannel(request, object_id):
    """
        #TODO
    """

    crumbs = ( ( _('Home') , reverse('root') ),
               ( _('Channel List') , reverse('showList')  ),
               ( _('Update Channel %(objectId)s') % {'objectId': object_id} , 
                        reverse('update_channel',args=[object_id])),
             )
    info (request, 'updateChannel', 'Updating channel')
    setLeftMenu (request, channelMenu (), _('Channels'))
    return update_object(
            request, 
            Channel, 
            object_id = object_id,
            post_save_redirect = reverse('showList'),
            template_name=TEMPLATES['update_channel'],
            extra_context = {'profile' : request.session['profile'],
                             'crumbs':crumbs,
                             'use': 'update'
                             },
        )
Example #30
0
def ajaxChannelList(request):
    info(request,"ajaxSubscriber","return list of channel")
    if request.is_ajax():
        if checkAdmin(request.user):
            chns = Channel.objects.all()
        else:
            chns = Channel.objects.filter(customer=request.user)

        chns = chns.filter(
                            Q(destructionDate__gte = datetime.datetime.now()) |
                            Q(destructionDate__isnull = True)
                          )
        
        return render_to_response(TEMPLATES['ajax_channel_list'],
                                            {
                                                'data': chns,
                                                'pag_index': settings.SUBSCRIBER_PAGINATE,
                                            },
                                            RequestContext(request)
                                         )
    else:
        warning(request,"ajaxSubscriber","this view is only for ajax")
        raise Http404