예제 #1
0
파일: ajax.py 프로젝트: alejo8591/maker
def attachment(request, object_id, update_id=None):
    dajax = Dajax()

    try:

        if object_id:
            attachments = Attachment.objects.filter(attached_object__id=object_id)
            template = 'core/tags/attachments_block'

            object_markup = render_to_string(template,
                               {'object_id': object_id, 'attachments': attachments},
                               context_instance=RequestContext(request),
                               response_format='html')

            dajax.add_data({'target': 'div.attachment-block[object="%s"]'%object_id, 'content': object_markup}, 'maker.add_data')

        if update_id:
            attachments = Attachment.objects.filter(attached_record__id=update_id)
            template = 'core/tags/attachments_record_block'
            update_markup = render_to_string(template,
                               {'update_id': update_id, 'attachments': attachments},
                               context_instance=RequestContext(request),
                               response_format='html')
            dajax.add_data({'target': 'div.attachment-record-block[object="%s"]'%update_id, 'content': update_markup}, 'maker.add_data')

    except Exception, e:
        print e
예제 #2
0
파일: account.py 프로젝트: alejo8591/maker
def account_notification_count(context):
    "Account notification count"
    request = context["request"]
    user = None
    if request.user.username:
        try:
            user = request.user.get_profile()
        except Exception:
            pass

    notifications = 0
    account = None
    if user:
        modules = user.get_perspective().get_modules()
        account = modules.filter(name="maker.account")
        if account:
            notifications = user.notification_set.count()

    response_format = "html"
    if "response_format" in context:
        response_format = context["response_format"]

    return Markup(
        render_to_string(
            "account/tags/notification_count",
            {"account": account, "notifications": notifications},
            response_format=response_format,
        )
    )
예제 #3
0
def messaging_unread(context):
    "Print a number of unread messages"
    
    request = context['request']
    
    user = None
    if request.user.username:
        try: 
            user = request.user.get_profile()
        except Exception:
            pass
    
    unread = 0
    messaging = None
    if user:
        modules = user.get_perspective().get_modules()
        messaging = modules.filter(name='maker.messaging')
        if messaging:
            unread = Object.filter_permitted(user, 
                                             Message.objects.filter(reply_to__isnull=True).exclude(read_by=user)).count()
        
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('messaging/tags/unread',
                               {'messaging': messaging, 'unread': unread},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #4
0
파일: object.py 프로젝트: alejo8591/maker
def attachments(context, object=None):
    "Attachments for an object or update record"

    request = context['request']

    profile = request.user.get_profile()

    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']

    update = isinstance(object,UpdateRecord)

    if not update:
        attachments = Attachment.objects.filter(attached_object=object)
        if profile.has_permission(object, mode='w'):
            template = 'core/tags/attachments'
        else:
            template = 'core/tags/attachments_block'

    else:
        attachments = Attachment.objects.filter(attached_record=object)
        if profile == object.author:
            template = 'core/tags/attachments_record'
        else:
            template = 'core/tags/attachments_record_block'

    return Markup(render_to_string(template,
                                   {'object': object,
                                    'attachments': attachments,
                                    },
                                   context_instance=RequestContext(request),
                                   response_format=response_format))
예제 #5
0
파일: user.py 프로젝트: alejo8591/maker
def user_block(context):
    "User block"
    request = context["request"]
    user = None
    if request.user.username:
        try:
            user = request.user.get_profile()
        except Exception:
            pass

    modules = user.get_perspective().get_modules()

    account = modules.filter(name="maker.account")

    admin = modules.filter(name="maker.core")
    if admin:
        admin = admin[0]

    response_format = "html"
    if "response_format" in context:
        response_format = context["response_format"]

    trial = False
    if getattr(settings, "MAKER_SUBSCRIPTION_USER_LIMIT") == 3:
        trial = True

    active = context.get("active", None)

    return Markup(
        render_to_string(
            "core/tags/user_block",
            {"user": user, "account": account, "admin": admin, "active": active, "trial": trial},
            response_format=response_format,
        )
    )
예제 #6
0
파일: object.py 프로젝트: alejo8591/maker
def core_watchlist(context, objects=None, skip_group=False, paginate=False):
    "Print a list of objects a user is subscribed to"
    
    request = context['request']
    profile = request.user.get_profile()
        
    if not objects:
        objects = profile.subscriptions.all()
    
    if 'unsubscribe' in request.GET:
        for object in objects.filter(pk=request.GET.get('unsubscribe')):
            object.subscribers.remove(profile)
        objects = profile.subscriptions.all()
    
    pathurl = request.path + '?'
    if request.GET:
        params = request.GET.copy()
        if 'unsubscribe' in params:
            del params['unsubscribe']
        pathurl += urllib.urlencode(params) + '&'
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('core/tags/watchlist',
                               {'objects': objects,
                                'skip_group': skip_group,
                                'dopaginate': paginate,
                                'pathurl': pathurl},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #7
0
파일: user.py 프로젝트: alejo8591/maker
def demo_user(context):
    "Print demo block if demo"

    response_format = "html"

    demo = getattr(settings, "MAKER_DEMO_MODE", False)

    return Markup(render_to_string("core/tags/demo_user", {"demo": demo}, response_format=response_format))
예제 #8
0
파일: modules.py 프로젝트: alejo8591/maker
def logo_block_container(context):
    "Returns logo_block_container"
    
    #request = context['request']
    response_format = 'html'
    
    return Markup(render_to_string('core/tags/logo_block_container',
                                   response_format=response_format))
예제 #9
0
파일: object.py 프로젝트: alejo8591/maker
def permission_block(context, object):
    "Block with objects permissions"
    request = context['request']
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
        
    response_format_tags = response_format
    if 'response_format_tags' in context:
        response_format_tags = context['response_format_tags']
    
    if 'permission' in request.GET:
        if request.user.get_profile().has_permission(object, mode='w'):
            if request.POST:
                if 'cancel' in request.POST:
                    request.redirect = request.path
                    return Markup(render_to_string('core/tags/permission_block',
                               {'object': object, 'path': request.path },
                               context_instance=RequestContext(request),
                               response_format=response_format))
                form = PermissionForm(request.POST, instance=object)
                if form.is_valid():
                    form.save()
                    request.redirect = request.path
                    return Markup(render_to_string('core/tags/permission_block',
                               {'object': object, 'path': request.path },
                               context_instance=RequestContext(request),
                               response_format=response_format))
            else:
                form = PermissionForm(instance=object)
                
            context = {'object': object, 'path': request.path, 'form': form }
            
            if 'ajax' in response_format_tags:
                context = converter.preprocess_context(context)
                
            return Markup(render_to_string('core/tags/permission_block_edit',
                                       context,
                                       context_instance=RequestContext(request),
                                       response_format=response_format))
    
    
    return Markup(render_to_string('core/tags/permission_block',
                               {'object': object, 'path': request.path },
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #10
0
파일: modules.py 프로젝트: alejo8591/maker
def object_tree_path(context, object, skipself=False):
    "Object tree path"
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
        
    path = object.get_tree_path(skipself)
        
    return Markup(render_to_string('core/tags/object_tree_path',
                                   {'path': path, 'skipself': skipself},
                                   response_format=response_format))
예제 #11
0
파일: models.py 프로젝트: alejo8591/maker
def email_caller_on_new_ticket(sender, instance, created, **kwargs):
    "When a new ticket is created send an email to the caller"
    if created:
        send_email_to_caller = False
        try:
            conf = ModuleSetting.get_for_module('maker.services', 'send_email_to_caller')[0]
            send_email_to_caller = conf.value
        except:
            send_email_to_caller = getattr(settings, 'HARDTREE_SEND_EMAIL_TO_CALLER', True)
        
        if send_email_to_caller:
            # don't send email to yourself
            creator_contact = None
            if instance.creator:
                creator_contact = instance.creator.get_contact()
            
            if instance.caller and instance.caller != creator_contact:
                if not instance.reference:
                    if instance.queue:
                        instance.reference = instance.queue.ticket_code + str(instance.id)
                    else:
                        instance.reference = str(instance.id)
                    instance.save()
                subject = "[#%s] %s" % (instance.reference, instance.name)
                
                # Construct context and render to html, body
                context = {'ticket': instance}
                try:
                    conf = ModuleSetting.get_for_module('maker.services', 'send_email_template')[0]
                    send_email_template = conf.value
                    html = render_string_template(send_email_template, context)
                except Exception, e:
                    html = render_to_string('services/emails/notify_caller', context, response_format='html')
                body = strip_tags(html)
                
                if instance.queue and instance.queue.message_stream:
                    stream = instance.queue.message_stream
                    if stream.outgoing_server_name:
                        try: 
                            caller_email = instance.caller.get_email()
                            if caller_email: 
                                toaddr = caller_email
                                ssl = False
                                if stream.outgoing_server_type == 'SMTP-SSL':
                                    ssl = True
                                email = BaseEmail(stream.outgoing_server_name, 
                                                  stream.outgoing_server_username,
                                                  stream.outgoing_password,
                                                  stream.outgoing_email,
                                                  toaddr, subject, body, html=html,
                                                  ssl=ssl)
                                email.process_email()
                        except:
                            pass
예제 #12
0
def documents_objects_list(context, objects, folder, skip_group=False):
    "Print a list of all objects"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('documents/tags/objects_list',
                               {'objects': objects, 'skip_group': skip_group, 'folder':folder},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #13
0
def documents_weblink_list(context, links, skip_group=False):
    "Print a list of links"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('documents/tags/weblink_list',
                               {'links': links, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #14
0
def administration_module_list(context, modules):
    "Print a list of users"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('core/administration/tags/module_list',
                               {'modules': modules},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #15
0
파일: projects.py 프로젝트: alejo8591/maker
def projects_time_slot_list(context, time_slots, no_dates=False):
    "Print a list of time slots"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('projects/tags/time_slot_list',
                               {'time_slots': time_slots, 'no_dates': no_dates},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #16
0
def infrastructure_servicing_list(context, items, skip_group=False):
    "Print a list of tasks"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('infrastructure/tags/servicing_list',
                               {'service_records': items, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #17
0
파일: sales.py 프로젝트: alejo8591/maker
def sales_opportunity_list(context, opportunities, skip_group=False):
    "Print a list of opportunitys"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('sales/tags/opportunity_list',
                               {'opportunities': opportunities, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #18
0
def identities_group_list(context, groups, skip_group=False):
    "Print a list of groups"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('identities/tags/group_list',
                               {'groups': groups, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #19
0
파일: finance.py 프로젝트: alejo8591/maker
def finance_transaction_list(context, transactions, skip_group=False):
    "Print a list of orders"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('finance/tags/transaction_list',
                               {'transactions': transactions, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #20
0
파일: finance.py 프로젝트: alejo8591/maker
def finance_liability_list(context, liabilities, skip_group=False):
    "Print a list of orders"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('finance/tags/liability_list',
                               {'liabilities': liabilities, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #21
0
파일: sales.py 프로젝트: alejo8591/maker
def sales_product_list(context, products, skip_group=False):
    "Print a list of products"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('sales/tags/product_list',
                               {'products': products, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #22
0
파일: events.py 프로젝트: alejo8591/maker
def events_event_list(context, events):
    "Print a list of events"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('events/tags/event_list',
                               {'events': events},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #23
0
def administration_user_list(context, users, skip_group=False):
    "Print a list of users"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('core/administration/tags/user_list',
                               {'users': users, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #24
0
파일: news.py 프로젝트: alejo8591/maker
def news_update_list(context, updates, skip_group=False):
    "Print a list of orders"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('news/tags/update_list',
                               {'updates': updates},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #25
0
파일: services.py 프로젝트: alejo8591/maker
def services_queue_list(context, queues, skip_group=False):
    "Print a list of queues"
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    return Markup(render_to_string('services/tags/queue_list',
                               {'queues': queues, 'skip_group': skip_group},
                               context_instance=RequestContext(request),
                               response_format=response_format))
예제 #26
0
파일: object.py 프로젝트: alejo8591/maker
def tags_box(context, object):
       
    request = context['request']
    
    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']
    
    response_format_tags = response_format
    if 'response_format_tags' in context:
        response_format_tags = context['response_format_tags']
    
    tags = object.tags.all()
    form = None
    if 'tags-edit' in request.GET:
        if request.POST.get('tags_object', 0) == unicode(object.id):
            form = TagsForm(tags, request.POST)
            if form.is_valid():
                if 'multicomplete_tags' in request.POST:
                    tag_names = request.POST.get('multicomplete_tags').split(',')
                    new_tags = []
                    for name in tag_names:
                        name = name.strip()
                        if name:
                            try:
                                tag = Tag.objects.get(name=name)
                            except Tag.DoesNotExist:
                                tag = Tag(name=name)
                                tag.save()
                            new_tags.append(tag)
                else:
                    new_tags = form.is_valid()
                    
                object.tags.clear()
                for tag in new_tags:
                    object.tags.add(tag)
                tags = object.tags.all()
                form = None
        else:
            form = TagsForm(tags)
    
    context = {'object': object,
               'tags': tags,
               'form': form,
               'editlink': request.path+'?tags-edit'}    
        
    if 'ajax' in response_format_tags:
        context = converter.preprocess_context(context)
    
    return Markup(render_to_string('core/tags/tags_box', context,
                                   context_instance=RequestContext(request),
                                   response_format=response_format))
예제 #27
0
파일: object.py 프로젝트: alejo8591/maker
def easy_invite_block(context, emails=[]):
    "The humanized datetime of the last update to an object"

    request = context['request']

    response_format = 'html'
    if 'response_format' in context:
        response_format = context['response_format']

    return Markup(render_to_string('core/tags/easy_invite',
                                   {'emails': emails,},
                                   context_instance=RequestContext(request),
                                   response_format=response_format))
예제 #28
0
파일: ajax.py 프로젝트: alejo8591/maker
def tags(request, target, object_id, edit=False, formdata={}):
    dajax = Dajax()
    
    response_format = 'html'
    object = Object.objects.get(pk=object_id)
    
    tags = object.tags.all()
    form = None
    if 'tags' in formdata and not type(formdata['tags']) == list:
        formdata['tags'] = [formdata['tags']]
    
    if edit or formdata:
        if formdata.get('tags_object', 0) == unicode(object.id):
            form = TagsForm(tags, formdata)
            if form.is_valid():
                if 'multicomplete_tags' in formdata:
                    tag_names = formdata.get('multicomplete_tags').split(',')
                    new_tags = []
                    for name in tag_names:
                        name = name.strip()
                        if name:
                            try:
                                tag = Tag.objects.get(name=name)
                            except Tag.DoesNotExist:
                                tag = Tag(name=name)
                                tag.save()
                            new_tags.append(tag)
                else:
                    new_tags = form.is_valid()
                    
                object.tags.clear()
                for tag in new_tags:
                    object.tags.add(tag)
                tags = object.tags.all()
                form = None
        else:
            form = TagsForm(tags)
    
    context = {'object': object,
               'tags': tags,
               'form': form }    
    
    context = converter.preprocess_context(context)
    
    output = render_to_string('core/ajax/tags_box', context,
                               context_instance=RequestContext(request),
                               response_format=response_format)
    
    dajax.add_data({'target': target, 'content': output}, 'maker.add_data')
    return dajax.json()
예제 #29
0
파일: ajax.py 프로젝트: alejo8591/maker
def get_more(request, target='#more-news', skip=20):
    dajax = Dajax()
    
    profile = request.user.get_profile()
    query = _get_filter_query(profile) & (~Q(author=profile) | Q(record_type='share') | Q(score__gt=0)) 
    updates = UpdateRecord.objects.filter(query).distinct()[skip:skip+20]
    
    output = render_to_string('news/ajax/index',
                               {'updates': updates, 'skip': skip+20},
                               context_instance=RequestContext(request),
                               response_format='html')
    
    dajax.add_data({'target': target, 'content': output}, 'maker.add_data')
    return dajax.json()
예제 #30
0
파일: modules.py 프로젝트: alejo8591/maker
def show_hint(context, hint=None, object=None):
    "Generic hint framework"
    
    request = context['request']
    response_format = 'html'
    
    user = None
    if request.user.username:
        try: 
            user = request.user.get_profile()
        except Exception:
            pass
        
    return Markup(render_to_string('core/hints/' + hint, {'user': user, 'object': object},
                                   response_format=response_format))