コード例 #1
0
def render_body(context,**pageargs):
    __M_caller = context.caller_stack._push_frame()
    try:
        __M_locals = __M_dict_builtin(pageargs=pageargs)
        total_discussions = context.get('total_discussions', UNDEFINED)
        csrf_token = context.get('csrf_token', UNDEFINED)
        trending = context.get('trending', UNDEFINED)
        users = context.get('users', UNDEFINED)
        def title():
            return render_title(context.locals_(__M_locals))
        request = context.get('request', UNDEFINED)
        facilitator = context.get('facilitator', UNDEFINED)
        community = context.get('community', UNDEFINED)
        courses = context.get('courses', UNDEFINED)
        enumerate = context.get('enumerate', UNDEFINED)
        discussions = context.get('discussions', UNDEFINED)
        pager = context.get('pager', UNDEFINED)
        resources = context.get('resources', UNDEFINED)
        __M_writer = context.writer()
        # SOURCE LINE 1
        __M_writer(u'\r\n')
        # SOURCE LINE 11
        __M_writer(u'\r\n')
        # SOURCE LINE 12
        __M_writer(u'\r\n')
        if 'parent' not in context._data or not hasattr(context._data['parent'], 'title'):
            context['self'].title(**pageargs)
        

        # SOURCE LINE 15
        __M_writer(u'\r\n<script type="text/javascript" src="/static/js/admin_ui_controls.js"></script>\r\n<script type="text/javascript" src="https://secure.skypeassets.com/i/scom/js/skype-uri.js"></script>\r\n<script type="text/javascript" src="/static/js/ckeditor/ckeditor.js" charset="utf-8"></script>\r\n<style type="text/css" media="screen">\r\n    #community-main {\r\n        width: 1185px;\r\n        margin: 30px auto;\r\n        text-align: left;\r\n    }\r\n    #community-main-content {\r\n        width: 880px;\r\n        float: left;\r\n    }\r\n    #community-main-sidebar {\r\n        width: 266px;\r\n        float: right;\r\n        top: 0;\r\n        text-align: center;\r\n    }\r\n    #community-sidebar-header {\r\n        border: 2px solid #ddd;\r\n        height: 53px;\r\n        text-align: center;\r\n        vertical-align: middle;\r\n        font: 700 1.2em/2.4em "Open Sans",Verdana,Geneva,sans-serif;\r\n    }\r\n    #community-sidebar {\r\n        width: 208px;\r\n        padding: 20px 20px 0 20px;\r\n        border: 2px solid #ddd;\r\n        margin: auto;\r\n        border-top: 0;\r\n        text-align: left;\r\n    }\r\n    .sidebar-section {\r\n        margin: 0 0 20px 0;\r\n    }\r\n    #community-member {\r\n        margin-top: 10px;\r\n    }\r\n    .sidebar-section h2 {\r\n        border-bottom: 2px solid #90BF70;\r\n        padding-bottom: 5px;\r\n        margin: 0 0 10px 0;\r\n        color: #006EBF;\r\n        font-weight: bold;\r\n        text-transform: none;\r\n        font-size: 1em;\r\n        line-height: 1em;\r\n    }\r\n    .sidebar-sub-section {\r\n        margin: 0 10px;\r\n    }\r\n    .trending-title {\r\n        display: block;\r\n        white-space: nowrap;\r\n        overflow: hidden;\r\n        text-overflow: ellipsis;\r\n    }\r\n    .trending-name {\r\n        font-size: 80%;\r\n        display: block;\r\n        margin-bottom: 5px;\r\n    }\r\n    .trending-name span {\r\n        font-weight: bold;\r\n    }\r\n    .status-name {\r\n        display: block;\r\n        margin-bottom: 5px;\r\n    }\r\n    #community-header {\r\n        border: 2px solid #ddd;\r\n        width: 100%;\r\n        position: relative;\r\n        min-height: 260px;\r\n    }\r\n    #community-header h1 {\r\n        text-align: left;\r\n        color: #006EBF;\r\n        margin: 15px 0 0 20px;\r\n        font-weight: bold;\r\n        font-size: 160%;\r\n    }\r\n    #community-header h2 {\r\n        margin: 15px 0 0 20px;\r\n        text-transform: none;\r\n        font-weight: bold;\r\n    }\r\n    #community-header h3 {\r\n        color: #006EBF;\r\n        padding: 10px 0;\r\n    }\r\n    #community-header h4 {\r\n        font-weight: bold;\r\n    }\r\n    #community-avatar {\r\n        width: 100px;\r\n        float: left;\r\n        margin: 0 15px 0 0;\r\n    }\r\n    #community-logo {\r\n        float: right;\r\n        width: 380px;\r\n        height: 260px;\r\n        overflow: hidden;\r\n        margin: 15px;\r\n        text-align: center;\r\n        background-color: white;\r\n    }\r\n    #community-logo img {\r\n        height: 260px;\r\n    }\r\n    .facilitator-wrap {\r\n        position: absolute;\r\n        width: 450px;\r\n        bottom: 20px;\r\n        left: 20px;\r\n    }\r\n    #community-content-area h1 {\r\n        color: #006EBF;\r\n        padding: 20px 3px;\r\n        font-size: 20px;\r\n        font-weight: bold;\r\n        text-align: left;\r\n        border-bottom: 2px solid #90BF70;\r\n        display: inline-block;\r\n    }\r\n    #community-content h1 {\r\n        width: 100%;\r\n    }\r\n    #community-content, #community-discussions {\r\n        color: #000;\r\n        padding: 20px 3px;\r\n    }\r\n    #community-content-area label {\r\n        font-style: normal;\r\n        display: inline-block;\r\n        width: 3.5em;\r\n        text-align: left;\r\n        font-weight: bold;\r\n    }\r\n    #community-content-area span {\r\n        /*font-size: 12px;*/\r\n    }\r\n    #community-content {\r\n        width: 270px;\r\n        height: 700px;\r\n        float: left;\r\n    }\r\n    #community-content-scroller {\r\n        width: 270px;\r\n        height: 640px;\r\n        overflow-y: scroll;\r\n        overflow-x: hidden;\r\n    }\r\n    #community-discussions {\r\n        width: 578px;\r\n        margin-right: 20px;\r\n        float: left;\r\n    }\r\n    .discussion {\r\n        clear: both;\r\n        position: relative;\r\n        border: 2px solid #ddd;\r\n        border-radius: 10px;\r\n        padding: 15px 20px 15px 94px;\r\n        background-color: #fff;\r\n        margin-bottom: 15px;\r\n    }\r\n    .discussion h2 {\r\n        margin-bottom: 5px;\r\n        width: 370px;\r\n        white-space: nowrap;\r\n        overflow: hidden;\r\n        text-overflow: ellipsis;\r\n    }\r\n    .discussion-post-info-header {\r\n        float: left;\r\n        width: 463px;\r\n    }\r\n    .discussion-post-info div {\r\n        display: inline-block;\r\n    }\r\n    .discussion-post-info span {\r\n        font-weight: bold;\r\n    }\r\n    .discussion-byline {\r\n        overflow: hidden;\r\n        height: 1.5em;\r\n        width: 370px;\r\n        white-space: nowrap;\r\n        text-overflow: ellipsis;\r\n    }\r\n    .discussion-stats-header {\r\n        float: left;\r\n        width: 100px;\r\n    }\r\n    .discussion-stats {\r\n        float: right;\r\n        width: 80px;\r\n    }\r\n    .discussion-stats span {\r\n        display: block;\r\n    }\r\n    .discussion-avatar {\r\n        position: absolute;\r\n        width: 64px;\r\n        display: block;\r\n        top: 15px;\r\n        left: 20px;\r\n    }\r\n    .community-clear {\r\n        clear: both;\r\n        height: 1px;\r\n        margin-top: -1px;\r\n    }\r\n    #discussion-pager {\r\n        text-align: center;\r\n        line-height: 24px;\r\n        clear: both;\r\n        margin: 20px 0;\r\n    }\r\n    #discussion-pager a {\r\n        width: auto;\r\n        line-height: 24px;\r\n        padding: 2px 5px;\r\n        color: #333;\r\n        border: 1px solid #ccc;\r\n        margin-left: 3px;\r\n    }\r\n    #discussion-pager a:hover {\r\n        color: #ff6600;\r\n    }\r\n    #discussion-pager .up_page {\r\n        display: inline-block;\r\n        width: 17px !important;\r\n        line-height: 24px;\r\n        height: 20px;\r\n        background: url(/static/tmp-resource/image/up_page.png) no-repeat;\r\n        border: none;\r\n        vertical-align: middle;\r\n    }\r\n    #discussion-pager .next_page {\r\n        display: inline-block;\r\n        width: 17px !important;\r\n        height: 20px;\r\n        background: url(/static/tmp-resource/image/next_page.png) no-repeat;\r\n        border: none;\r\n        margin-left: 13px;\r\n        vertical-align: middle;\r\n    }\r\n    #discussion-pager .page_active {\r\n        color: #ff6600 !important;\r\n    }\r\n    #discussion-pager .page_active:hover {\r\n        color: #ff9933 !important;\r\n    }\r\n    #discussion-pager .page_num {\r\n        display: inline-block;\r\n        padding: 2px 5px;\r\n    }\r\n    div.cke{\r\n        width:580px;\r\n    }\r\n    .community-resource {\r\n        display: block;\r\n        clear: both;\r\n        margin-bottom: 20px;\r\n        border: 0 solid #f0870c;\r\n        height: 160px;\r\n        width: 242px;\r\n        box-shadow: rgba(0, 0, 0, 0.1) 3px 7px 7px 0;\r\n        border-radius: 6px;\r\n        overflow: hidden;\r\n        position: relative;\r\n    }\r\n    .community-resource img {\r\n        display: block;\r\n        width: 242px;\r\n        border-radius: 6px;\r\n    }\r\n    .community-resource a {\r\n        display: block;\r\n        position: absolute;\r\n        bottom: 0;\r\n        left: 0;\r\n        height: 60px;\r\n        background: #f0870c;\r\n        color: #fff;\r\n        font-size: 14px;\r\n        border-radius: 0 0 6px 6px;\r\n    }\r\n    .community-resource div {\r\n        display: table-cell;\r\n        height: 60px;\r\n        vertical-align: middle;\r\n        width: 242px;\r\n        text-align: center;\r\n    }\r\n    #table-members th {\r\n        color: #006EBF;\r\n        padding: 20px 3px;\r\n        font-size: 20px;\r\n    }\r\n    .card-link span {\r\n        color: #FFFFFF;\r\n    }\r\n    .course-card {\r\n        margin: 0 0 20px 0 !important\r\n    }\r\n    div.card-bottom table tr:nth-child(2) {\r\n        display: none;\r\n    }\r\n    #members {\r\n        display: inline-block;\r\n        overflow-x: hidden;\r\n        padding: 10px 0;\r\n        width: 100%;\r\n        position: relative;\r\n    }\r\n    #members a {\r\n        margin-right: 5px;\r\n        display: inline-block;\r\n    }\r\n    #members a img {\r\n        vertical-align: middle;\r\n    }\r\n    .modal {\r\n        position: absolute;\r\n        opacity: 1;\r\n        z-index: 101;\r\n        left: 50%;\r\n        margin-left: -349px;\r\n        top: 40px;\r\n        background: none repeat scroll 0 0 rgba(255, 255, 255, 1);\r\n        border-radius: 5px;\r\n        box-shadow: 0px 15px 80px 15px rgba(0, 0, 0, 0.5);\r\n        padding: 0 0 8px 0;\r\n        width: 680px;\r\n        display: none;\r\n    }\r\n    #fixed-dialog, #skype-dialog {\r\n        position: fixed;\r\n    }\r\n    .modal .close-modal {\r\n        border-radius: 2px;\r\n        cursor: pointer;\r\n        display: inline-block;\r\n        vertical-align: baseline;\r\n        padding: 10px;\r\n        position: absolute;\r\n        right: 2px;\r\n        top: 0;\r\n        z-index: 3;\r\n        color: #333;\r\n    }\r\n    .modal .titlebar {\r\n        height: 70px;\r\n        background: #ccc;\r\n    }\r\n    .modal .dialog-title {\r\n        margin: 0;\r\n        padding: 20px 0 0 30px;\r\n        color: #666;\r\n    }\r\n    .modal .content {\r\n        color: #333;\r\n        text-align: left;\r\n        font-size: 16px;\r\n        padding: 20px 10px;\r\n        line-height: 20px;\r\n    }\r\n    .modal .discussion-error {\r\n        color: #f00;\r\n        font-weight: bold;\r\n        font-size: 120%;\r\n        line-height: 120%;\r\n    }\r\n    .modal .inner-wrapper form textarea {\r\n        height: 100px;\r\n    }\r\n    .hangout_container {\r\n        text-align: center;\r\n        padding-top: 20px;\r\n    }\r\n    .hangout_container img {\r\n        width: 120px;\r\n        vertical-align: top;\r\n    }\r\n    .hangout_container .side-button {\r\n        background: #8cbe41 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAJdnBBZwAAABQAAAAUAKM7KtEAAAB2SURBVCjPY/zPQBxgIlIdTRReYfiPFZ5HUsXNMJ/hP24A06P9/8r//4QVpvz/CuHgU8jzfzGCgxvo/b+O4DD+xx3iPxg4iAue38SGoynDZSQeXs9w/p9NjGcgwRPz/zNxChn+a0IC/AoOZVeR4pP7/3zGIZAeAdFoNZxQb6AuAAAAAElFTkSuQmCC) no-repeat 10px 10px;\r\n        height: 20px;\r\n    }\r\n    .side-button {\r\n        color: white !important;\r\n        display: block;\r\n        padding: 10px;\r\n        border-width: 1px;\r\n        border-style: solid;\r\n        text-align: center;\r\n        margin-top: 5px;\r\n    }\r\n    .blue-button {\r\n        border-color: #45719E;\r\n        background: #5A9BD5;\r\n    }\r\n    .green-button {\r\n        border-color: #595;\r\n        background: #8cbe41;\r\n    }\r\n    .red-button {\r\n        border-color: #df0000;\r\n        background: #ED2828;\r\n    }\r\n    #poll-form {\r\n        display: none;\r\n        margin-top: 15px;\r\n        clear: both;\r\n    }\r\n    .poll-answer-input {\r\n        width: 80% !important;\r\n        display: inline !important;\r\n    }\r\n    .discussion-attachment {\r\n        float: left;\r\n        padding-top: 16px;\r\n    }\r\n    .discussion-poll {\r\n        float: right;\r\n        display: block;\r\n        vertical-align: middle;\r\n        padding-top: 16px;\r\n    }\r\n    #members-title {\r\n        border-bottom: 2px solid #90BF70;\r\n        color: #006EBF;\r\n        font-size: 20px;\r\n        padding: 20px 3px;\r\n        font-weight: bold;\r\n        clear: both;\r\n    }\r\n    #table-members {\r\n        width: 100%;\r\n        table-layout: fixed;\r\n        margin-bottom: 20px;\r\n    }\r\n    #table-members tr {\r\n        border-bottom: 2px solid #90BF70;\r\n    }\r\n    .member-arrows {\r\n        width: 20px;\r\n        vertical-align: middle;\r\n    }\r\n    .member-arrows div {\r\n        cursor: pointer;\r\n        width: 17px;\r\n        height: 20px;\r\n    }\r\n    .member-arrow-left {\r\n        background: url(/static/tmp-resource/image/up_page.png);\r\n    }\r\n    .member-arrow-right {\r\n        background: url(/static/tmp-resource/image/next_page.png);\r\n    }\r\n    .member-column {\r\n        white-space: nowrap;\r\n    }\r\n    .discussion-error-box {\r\n        border-color: red !important;\r\n    }\r\n    #create-skype {\r\n        float: left;\r\n        margin: 0 20px 0 0;\r\n    }\r\n    .skype-container {\r\n        float: left;\r\n    }\r\n    .skype-button .side-button {\r\n        background: #5A9BD5 url(https://swx.cdn.skype.com/skypewebsdk/shareButton/v/latest/assets/images/s_logo.svg) no-repeat 10px 10px/20px 20px;\r\n        height: 20px;\r\n    }\r\n</style>\r\n<link rel="stylesheet" type="text/css"  href="static/tmp-resource/css/ppd-general01.css"/>\r\n<body style="text-align:center">\r\n<div id="community-main" class="clearfix">\r\n    <section id="community-main-content">\r\n        <div id="community-header">\r\n')
        # SOURCE LINE 504
        if community.logo:
            # SOURCE LINE 505
            __M_writer(u'                <div id="community-logo"><img src="')
            __M_writer(filters.decode.utf8(get_file_url(community.logo)))
            __M_writer(u'" alt="Community Logo"/></div>\r\n')
        # SOURCE LINE 507
        __M_writer(u'            <h1>')
        __M_writer(filters.decode.utf8(community.name))
        __M_writer(u'</h1>\r\n            <h2>')
        # SOURCE LINE 508
        __M_writer(filters.decode.utf8(community.motto))
        __M_writer(u'</h2>\r\n')
        # SOURCE LINE 509
        if facilitator:
            # SOURCE LINE 510
            __M_writer(u'                <div class="facilitator-wrap">\r\n                    <img src="')
            # SOURCE LINE 511
            __M_writer(filters.decode.utf8(reverse('user_photo', args=[facilitator.user.id])))
            __M_writer(u'" id="community-avatar" alt="Facilitator Avatar" />\r\n                    <h3>')
            # SOURCE LINE 512
            __M_writer(filters.decode.utf8(facilitator.user.first_name))
            __M_writer(u' ')
            __M_writer(filters.decode.utf8(facilitator.user.last_name))
            __M_writer(u'</h3>\r\n                    <h4>Community Facilitator</h4>\r\n                </div>\r\n')
        # SOURCE LINE 516
        __M_writer(u'            <div class="community-clear"></div>\r\n        </div>\r\n\r\n        <div id="community-content-area">\r\n            <div id="community-discussions">\r\n                <a name="discussions"></a>\r\n                <h1 class="discussion-post-info-header">Community Discussion</h1>\r\n                <h1 class="discussion-stats-header">Activity</h1>\r\n                <div class="discussions">\r\n')
        # SOURCE LINE 525
        for i,d in enumerate(discussions):
            # SOURCE LINE 526
            __M_writer(u'                    <div class="discussion">\r\n                        <img class="discussion-avatar" src="')
            # SOURCE LINE 527
            __M_writer(filters.decode.utf8(reverse('user_photo', args=[d.user.id])))
            __M_writer(u'">\r\n                        <div class="discussion-stats">\r\n                            <span>Replies: ')
            # SOURCE LINE 529
            __M_writer(filters.decode.utf8(d.replies))
            __M_writer(u'</span>\r\n                            <span>Views: ')
            # SOURCE LINE 530
            __M_writer(filters.decode.utf8(d.views))
            __M_writer(u'</span>\r\n                        </div>\r\n                        <h2><a href="')
            # SOURCE LINE 532
            __M_writer(filters.decode.utf8(reverse('community_discussion_view', args=[d.id])))
            __M_writer(u'">')
            __M_writer(filters.decode.utf8(d.subject))
            __M_writer(u'</a></h2>\r\n                        <div class="discussion-post-info">\r\n                            <div class="discussion-byline"><span>Posted By: </span>')
            # SOURCE LINE 534
            __M_writer(filters.decode.utf8(d.user.first_name))
            __M_writer(u' ')
            __M_writer(filters.decode.utf8(d.user.last_name))
            __M_writer(u'</div>\r\n                            <div class="discussion-date"><span> On: </span>')
            # SOURCE LINE 535
            __M_writer(filters.decode.utf8('{dt:%b}. {dt.day}, {dt.year}'.format(dt=d.date_create)))
            __M_writer(u'</div>\r\n                        </div>\r\n                        <div class="community-clear"></div>\r\n                    </div>\r\n')
        # SOURCE LINE 540
        __M_writer(u'                </div>\r\n                <div id="discussion-pager">\r\n                    <span>Total Discussions: ')
        # SOURCE LINE 542
        __M_writer(filters.decode.utf8(pager['total']))
        __M_writer(u'</span>&nbsp;&nbsp;&nbsp;\r\n')
        # SOURCE LINE 543
        if pager['page'] > 1:
            # SOURCE LINE 544
            __M_writer(u'                        <a href="#discussions" onclick="replaceDiscussions(')
            __M_writer(filters.decode.utf8(pager['page']-1))
            __M_writer(u')" class="up_page"></a>\r\n')
        # SOURCE LINE 546
        for p in pager['jumps']:
            # SOURCE LINE 547
            if p=='c':
                # SOURCE LINE 548
                __M_writer(u'                            <a href="#discussions" onclick="replaceDiscussions(')
                __M_writer(filters.decode.utf8(pager['page']))
                __M_writer(u')" class="page_active">')
                __M_writer(filters.decode.utf8(pager['page']))
                __M_writer(u'</a>\r\n')
                # SOURCE LINE 549
            else:
                # SOURCE LINE 550
                __M_writer(u'                            <a href="#discussions" onclick="replaceDiscussions(')
                __M_writer(filters.decode.utf8(p))
                __M_writer(u')">')
                __M_writer(filters.decode.utf8(p))
                __M_writer(u'</a>\r\n')
        # SOURCE LINE 553
        if pager['pages'] > pager['page']:
            # SOURCE LINE 554
            __M_writer(u'                        <a href="#discussions" onclick="replaceDiscussions(')
            __M_writer(filters.decode.utf8(pager['page']+1))
            __M_writer(u')" class="next_page"></a>\r\n')
        # SOURCE LINE 556
        __M_writer(u'                </div>\r\n            </div>\r\n            <div id="community-content">\r\n                <h1>Content Collections</h1>\r\n                <div id="community-content-scroller">\r\n')
        # SOURCE LINE 561
        for i,cc in enumerate(courses):
            # SOURCE LINE 562
            __M_writer(u'                        ')
            c=course_from_id(cc.course) 
            
            __M_locals_builtin_stored = __M_locals_builtin()
            __M_locals.update(__M_dict_builtin([(__M_key, __M_locals_builtin_stored[__M_key]) for __M_key in ['c'] if __M_key in __M_locals_builtin_stored]))
            __M_writer(u'\r\n                        ')
            # SOURCE LINE 563
            runtime._include_file(context, u'../course.html', _template_uri, course=c)
            __M_writer(u'\r\n')
        # SOURCE LINE 565
        for i,r in enumerate(resources):
            # SOURCE LINE 566
            __M_writer(u'                        <div class="community-resource">\r\n                            <img src="')
            # SOURCE LINE 567
            __M_writer(filters.decode.utf8(get_file_url(r.logo)))
            __M_writer(u'" alt="')
            __M_writer(filters.decode.utf8(r.name))
            __M_writer(u'" />\r\n                            <a href="')
            # SOURCE LINE 568
            __M_writer(filters.decode.utf8(r.link))
            __M_writer(u'" target="_blank">\r\n                                <div>\r\n                                    ')
            # SOURCE LINE 570
            __M_writer(filters.decode.utf8(r.name))
            __M_writer(u'\r\n                                </div>\r\n                            </a>\r\n                        </div>\r\n')
        # SOURCE LINE 575
        __M_writer(u'                </div>\r\n            </div>\r\n        </div>\r\n        \r\n        <div id="members-title">Members</div>\r\n        <table id="table-members" cellspacing="" cellpadding="" border="0">\r\n            <tr>\r\n                <td class="member-arrows">\r\n                    <div class="member-arrow-left" onclick="left()"> </div>\r\n                </td>\r\n                <td class="member-column">\r\n                    <div id="members">\r\n')
        # SOURCE LINE 587
        for u in users:
            # SOURCE LINE 588
            __M_writer(u'                            <a href="')
            __M_writer(filters.decode.utf8(reverse('dashboard',args=[u.user.id])))
            __M_writer(u'" target="_blank">\r\n                                <img src="')
            # SOURCE LINE 589
            __M_writer(filters.decode.utf8(reverse('user_photo',args=[u.user.id])))
            __M_writer(u'" alt="')
            __M_writer(filters.decode.utf8(u.user.first_name))
            __M_writer(u'" />\r\n                            </a>\r\n')
        # SOURCE LINE 592
        __M_writer(u'                    </div>\r\n                </td>\r\n                <td class="member-arrows">\r\n                    <div class="member-arrow-right" onclick="right()"></div>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </section>\r\n    <section id="community-main-sidebar">\r\n        <div id="community-sidebar-header">\r\n            ')
        # SOURCE LINE 602
        __M_writer(filters.decode.utf8(request.user.username))
        __M_writer(u'\r\n        </div>\r\n        <div id="community-sidebar">\r\n            <div class="sidebar-section" style="text-align: center;">\r\n                <img src="/static/images/pcg_columns_transparent.png" alt="PCG Logo" />\r\n')
        # SOURCE LINE 607
        if is_member(request.user, community):
            # SOURCE LINE 608
            __M_writer(u'                    <div id="community-member">MEMBER</div>\r\n')
            # SOURCE LINE 609
        else:
            # SOURCE LINE 610
            __M_writer(u'                    <a href="#" class="side-button green-button" onclick="joinMe()">Add Me</a>\r\n')
        # SOURCE LINE 612
        __M_writer(u'            </div>\r\n            <div class="sidebar-section">\r\n                <h2>Community Status</h2>\r\n                <div class="sidebar-sub-section">\r\n                    <span class="status-name">Discussions: ')
        # SOURCE LINE 616
        __M_writer(filters.decode.utf8(total_discussions))
        __M_writer(u'</span>\r\n                    <!--<span class="trending-name">Messages: </span>-->\r\n                    <span class="status-name">Members: ')
        # SOURCE LINE 618
        __M_writer(filters.decode.utf8(users.count()))
        __M_writer(u'</span>\r\n                </div>\r\n            </div>\r\n            <div class="sidebar-section">\r\n                <h2>Trending</h2>\r\n                <div class="sidebar-sub-section">\r\n')
        # SOURCE LINE 624
        for i, d in enumerate(trending):
            # SOURCE LINE 625
            __M_writer(u'                        <span class="trending-title"><a href="')
            __M_writer(filters.decode.utf8(reverse('community_discussion_view', args=[d.id])))
            __M_writer(u'">')
            __M_writer(filters.decode.utf8(d.subject))
            __M_writer(u'</a></span>\r\n                        <span class="trending-name"><span>Posted: </span>')
            # SOURCE LINE 626
            __M_writer(filters.decode.utf8('{dt:%b}. {dt.day}, {dt.year}'.format(dt=d.date_create)))
            __M_writer(u'</span>\r\n')
        # SOURCE LINE 628
        __M_writer(u'                </div>\r\n            </div>\r\n            <div class="sidebar-section">\r\n                <a href="')
        # SOURCE LINE 631
        __M_writer(filters.decode.utf8(reverse('communities')))
        __M_writer(u'" class="blue-button side-button">My Communities</a>\r\n')
        # SOURCE LINE 632
        if is_member(request.user, community) or request.user.is_superuser:
            # SOURCE LINE 633
            __M_writer(u'                    <a href="#" class="blue-button side-button" id="newDiscussionButton" onclick="newDiscussion()">Start a New Discussion</a>\r\n')
        # SOURCE LINE 635
        if is_facilitator(request.user, community) or request.user.is_superuser:
            # SOURCE LINE 636
            __M_writer(u'                    <a href="')
            __M_writer(filters.decode.utf8(reverse('community_edit',args=[community.id])))
            __M_writer(u'" class="green-button side-button">Edit</a>\r\n                    <a href="')
            # SOURCE LINE 637
            __M_writer(filters.decode.utf8(reverse('community_delete',args=[community.id])))
            __M_writer(u'" class="red-button side-button delete-icon">Delete</a>\r\n                    <a href="')
            # SOURCE LINE 638
            __M_writer(filters.decode.utf8(reverse('community_mange_member',args=[community.id])))
            __M_writer(u'" class="blue-button side-button">Manage Members</a>\r\n')
        # SOURCE LINE 640
        if has_hangout_perms(request.user) and community.hangout:
            # SOURCE LINE 641
            __M_writer(u'                    <div class="hangout_container" id="hangout_div">\r\n                        <img src="/static/images/community_google_hangouts.png" class="" alt="" />\r\n                        <a class="side-button green-button" href="')
            # SOURCE LINE 643
            __M_writer(filters.decode.utf8(community.hangout))
            __M_writer(u'" target="_blank">Join Hangout</a>\r\n                    </div>\r\n')
        # SOURCE LINE 646
        if request.user.is_superuser:
            # SOURCE LINE 647
            __M_writer(u'                    <div class="skype-button">\r\n                        <a href="#" id="skype-start" class="side-button blue-button">Start Skype Call</a>\r\n                    </div>\r\n')
        # SOURCE LINE 651
        __M_writer(u'            </div>\r\n        </div>\r\n    </section>\r\n</div>\r\n<div style="" id="dialog" class="modal">\r\n    <div class="inner-wrapper" style="border:0;border-radius:5px;padding:0">\r\n        <div class="titlebar">\r\n            <h3 class="dialog-title"></h3>\r\n            <div class="close-modal" id="dialog_close">\u2715</div>\r\n        </div>\r\n        <div class="content"></div>\r\n    </div>\r\n</div>\r\n<div style="" id="fixed-dialog" class="modal">\r\n    <div class="inner-wrapper" style="border:0;border-radius:5px;padding:0">\r\n        <div class="titlebar">\r\n            <h3 class="dialog-title"></h3>\r\n            <div class="close-modal" id="dialog_close">\u2715</div>\r\n        </div>\r\n        <div class="content"></div>\r\n    </div>\r\n</div>\r\n<div style="" id="skype-dialog" class="modal">\r\n    <div class="inner-wrapper" style="border:0;border-radius:5px;padding:0">\r\n        <div class="titlebar">\r\n            <h3 class="dialog-title">Start Skype Call</h3>\r\n            <div class="close-modal" id="dialog_close">\u2715</div>\r\n        </div>\r\n        <div class="content">\r\n            <form>\r\n                <label>Participants (comma separated):<input type="text" name="skype-participants"></label>\r\n                <label>Topic (optional):<input type="text" name="skype-topic"></label>\r\n                <input type="button" value="Create" id="create-skype">\r\n                <div class="skype-container">\r\n                    <script type="text/javascript">\r\n                        function startSkype(params) {\r\n                            var skype_button = Skype.ui(params);\r\n                            if (skype_button) {\r\n                                var id = $(\'.skype-container\').attr(\'id\');\r\n                                $(\'#\' + id + \'_paraElement img\').css({\'margin\': \'0\', \'vertical-align\': \'0\'});\r\n                            }\r\n                        }\r\n                    </script>\r\n                </div>\r\n            </form>\r\n            <div class="community-clear"></div>\r\n        </div>\r\n    </div>\r\n</div>\r\n<script type="text/javascript">\r\n    function joinMe(){\r\n        var user_id = "')
        # SOURCE LINE 702
        __M_writer(filters.decode.utf8(request.user.id))
        __M_writer(u'";\r\n        $.post("')
        # SOURCE LINE 703
        __M_writer(filters.decode.utf8(reverse('community_join', args=[community.id])))
        __M_writer(u'",{user_ids:user_id}, function(r){\r\n            if(r.success)\r\n                window.location.reload();\r\n        });\r\n    }\r\n    function validateDiscussionForm() {\r\n        $(\'.discussion-error-box\').removeClass(\'discussion-error-box\');\r\n        var valid = true;\r\n        var errors = [\'The following errors occurred:\\n\'];\r\n        if (!/[A-Za-z]/.test($(\'.discussion-subject input\').val())) {\r\n            valid = false;\r\n            errors.push(\'Subject is required.\');\r\n            $(\'.discussion-subject input\').addClass(\'discussion-error-box\');\r\n        }\r\n        if (!/[A-Za-z]/.test($(\'.discussion-post textarea\').val())) {\r\n            valid = false;\r\n            errors.push(\'Discussion is required.\');\r\n            $(\'.discussion-post textarea\').addClass(\'discussion-error-box\');\r\n        }\r\n        if ($(\'#new-discussion-submit .poll-add\').is(\':checked\')) {\r\n            if (!/[A-Za-z]/.test($(\'.poll-question\').val())) {\r\n                valid = false;\r\n                errors.push(\'Question is required.\');\r\n                $(\'.poll-question\').addClass(\'discussion-error-box\');\r\n            }\r\n            if ($(\'.poll-answer-input\').length < 2) {\r\n                valid = false;\r\n                errors.push(\'You need at least two answers to choose from.\');\r\n            }\r\n            $(\'.poll-answer-input\').each(function() {\r\n                if (!/[A-Za-z]/.test($(this).val())) {\r\n                    valid = false;\r\n                    errors.push(\'Answers must be filled out.\');\r\n                    $(this).addClass(\'discussion-error-box\');\r\n                    return false;\r\n                }\r\n            });\r\n            if ($(\'.poll-expiration\').val() != \'\' && !/^\\d?\\d\\/\\d?\\d\\/\\d\\d\\d\\d$/.test($(\'.poll-expiration\').val())) {\r\n                valid = false;\r\n                errors.push(\'Expiration date must be in the format mm/dd/yyyy.\');\r\n                $(\'.poll-expiration\').addClass(\'discussion-error-box\');\r\n            }\r\n        }\r\n        if (!valid) {\r\n            var error = errors.join(\'\\n\');\r\n            alert(error);\r\n        }\r\n        return valid;\r\n    }\r\n    function newDiscussion() {\r\n        var content = \'<form id="new-discussion-submit" action="')
        # SOURCE LINE 753
        __M_writer(filters.decode.utf8(reverse('community_discussion_add')))
        __M_writer(u'" method="post" enctype="multipart/form-data">\';\r\n        content += \'<label class="discussion-subject">Subject:<input type="text" name="subject"></label>\';\r\n        content += \'<label class="discussion-post">Discussion:<textarea name="post" id="post"></textarea></label>\';\r\n        content += \'<label class="discussion-attachment">Attachment:<input type="file" name="attachment"></label>\';\r\n        content += \'<label class="discussion-poll"><img src="/static/images/poll-icon.png" alt="Add Poll"> <input type="checkbox" class="poll-add"> Add Poll</label>\';\r\n        content += \'<div id="poll-form">\';\r\n        content += \'<label>Question: <input class="poll-question" type="text" name="question"></label>\';\r\n        content += \'<label>Answers: <ol id="poll-answers">\';\r\n        content += \'<li class="poll-answer">\';\r\n        content += \'<input class="poll-answer-input" type="text" name="answers[0]">\';\r\n        content += \'</li>\';\r\n        content += \'<li class="poll-answer">\';\r\n        content += \'<input class="poll-answer-input" type="text" name="answers[1]"> <input type="button" class="add operation" value="+">\';\r\n        content += \'</li>\';\r\n        content += \'</ol></label>\';\r\n        content += \'<label>Expiration Date: <input class="poll-expiration" type="text" name="expiration" placeholder="mm/dd/yyyy"></label>\';\r\n        content += \'</div>\';\r\n        content += \'<input type="hidden" value="')
        # SOURCE LINE 770
        __M_writer(filters.decode.utf8(community.id))
        __M_writer(u'" name="community_id">\';\r\n        content += \'<input type="hidden" name="csrfmiddlewaretoken" value="')
        # SOURCE LINE 771
        __M_writer(filters.decode.utf8(csrf_token))
        __M_writer(u'"/>\';\r\n        content += \'<div class="community-clear"></div><br/>\';\r\n        content += \'<input type="submit" name="submit" value="Add">\';\r\n        content += \'</form><div class="discussion-error"></div>\';\r\n        var discussion_dialog = new Dialog($(\'#dialog\'));\r\n        discussion_dialog.show(\'New Discussion\', content);\r\n        CKEDITOR.replace(\'post\');\r\n\r\n        $(\'#new-discussion-submit\').submit(function(event) {\r\n            event.preventDefault();\r\n            for (var instanceName in CKEDITOR.instances) {\r\n                CKEDITOR.instances[instanceName].updateElement();\r\n            }\r\n            if (validateDiscussionForm()) {\r\n                var formData = new FormData($(this)[0]);\r\n                var formSelector = $(this);\r\n                $.ajax({\r\n                    url: \'')
        # SOURCE LINE 788
        __M_writer(filters.decode.utf8(reverse('community_discussion_add')))
        __M_writer(u"',\r\n                    type: 'POST',\r\n                    data: formData,\r\n                    async: false,\r\n                    cache: false,\r\n                    contentType: false,\r\n                    processData: false,\r\n                    success: function (data) {\r\n                        if (data.Success) {\r\n                            if ($('#new-discussion-submit .poll-add').is(':checked')) {\r\n                                var pollData = formSelector.serializeArray();\r\n                                pollData[pollData.length] = {name: 'poll_id', 'value': data.DiscussionID};\r\n                                $.post('")
        # SOURCE LINE 800
        __M_writer(filters.decode.utf8(reverse('poll_form_submit', args=['discussion'])))
        __M_writer(u"', pollData, function (data) {\r\n                                    if (data.Success) {\r\n                                        discussion_dialog.hide();\r\n                                        replaceDiscussions(1);\r\n                                    } else {\r\n                                        $('.discussion-error').append('There was an error adding your discussion. Please try again later.')\r\n                                    }\r\n                                });\r\n                            } else {\r\n                                discussion_dialog.hide();\r\n                                replaceDiscussions(1);\r\n                            }\r\n\r\n                        } else {\r\n                            $('.discussion-error').append('There was an error adding your discussion. Please try again later.')\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n        });\r\n\r\n        $('.poll-add').click(function() {\r\n            $('#poll-form').toggle();\r\n        });\r\n        $('.poll-answer .add').click(function() {\r\n            newAnswer();\r\n        });\r\n    }\r\n    function replaceDiscussions(page) {\r\n        $.get('")
        # SOURCE LINE 829
        __M_writer(filters.decode.utf8(reverse('community_discussion_list', args=[community.id])))
        __M_writer(u'\', {\'page\': page}, function(data) {\r\n            var content = \'<div class="discussions">\';\r\n            for (var x = 0; x < data.discussions.length; x++) {\r\n                content += \'<div class="discussion">\';\r\n                content += \'<img class="discussion-avatar" src="\' + data.discussions[x].avatar + \'">\';\r\n                content += \'<div class="discussion-stats">\';\r\n                content += \'<span>Replies: \' + data.discussions[x].replies + \'</span>\';\r\n                content += \'<span>Views: \' + data.discussions[x].views + \'</span>\';\r\n                content += \'</div>\';\r\n                content += \'<h2><a href="\' + data.discussions[x].url + \'">\' + data.discussions[x].subject + \'</a></h2>\';\r\n                content += \'<div class="discussion-post-info">\';\r\n                content += \'<div class="discussion-byline"><span>Posted By: </span>\' + data.discussions[x].first_name + \' \' + data.discussions[x].last_name + \'</div>\';\r\n                content += \'<div class="discussion-date"><span>&nbsp;On: </span>\' + data.discussions[x].date_create + \'</div>\';\r\n                content += \'</div><div class="community-clear"></div></div>\';\r\n            }\r\n            content += \'</div>\';\r\n            $(\'#community-discussions .discussions\').replaceWith(content);\r\n\r\n            content = \'<div id="discussion-pager">\';\r\n            content += \'<span>Total Discussions: \' + data.pager.total + \'</span>&nbsp;&nbsp;&nbsp;\';\r\n            if (data.pager.page > 1) {\r\n                content += \'<a href="#discussions" onclick="replaceDiscussions(\' + (data.pager.page - 1) + \')" class="up_page"></a>\';\r\n            }\r\n            for (var p = 0; p < data.pager.jumps.length; p++) {\r\n                if (data.pager.jumps[p] == \'c\') {\r\n                    content += \'<a href="#discussions" onclick="replaceDiscussions(\' + data.pager.page + \')" class="page_active">\' + data.pager.page + \'</a>\';\r\n                } else {\r\n                    content += \'<a href="#discussions" onclick="replaceDiscussions(\' + data.pager.jumps[p] + \')">\' + data.pager.jumps[p] + \'</a>\';\r\n                }\r\n            }\r\n            if (data.pager.pages > data.pager.page) {\r\n                content += \'<a href="#discussions" onclick="replaceDiscussions(\' + (data.pager.page + 1) + \')" class="next_page"></a>\';\r\n            }\r\n            content += \'</div>\';\r\n            $(\'#discussion-pager\').replaceWith(content);\r\n\r\n            window.history.pushState(page, "')
        # SOURCE LINE 865
        __M_writer(filters.decode.utf8(community.name))
        __M_writer(u'", "')
        __M_writer(filters.decode.utf8(reverse('community_view', args=[community.id])))
        __M_writer(u'?page=" + page);\r\n        });\r\n    }\r\n    function newAnswer() {\r\n        var answer_num = $(\'.poll-answer\').length;\r\n        $(\'.poll-answer\').each(function(index) {\r\n            $(this).find(\'.operation\').replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeAnswer(\' + index + \')">\');\r\n        });\r\n        var entry = \'<li class="poll-answer">\';\r\n        entry += \'<input class="poll-answer-input" type="text" name="answers[\' + answer_num + \']"> <input type="button" class="add operation" value="+">\';\r\n        entry += \'</li>\';\r\n        $(\'#poll-answers\').append(entry);\r\n        $(\'.poll-answer .add\').click(function() {\r\n            newAnswer();\r\n        });\r\n    }\r\n    function removeAnswer(index) {\r\n        $(\'.poll-answer\').each(function(i) {\r\n            if (i == index) {\r\n                $(this).remove();\r\n            } else {\r\n                var num = 0;\r\n                if (i < index) {\r\n                    num = i;\r\n                }\r\n                if (i > index) {\r\n                    num = i - 1;\r\n                }\r\n                $(this).children(\'.poll-answer-input\').attr(\'name\', \'answers[\' + num + \']\');\r\n            }\r\n        });\r\n        $(\'.poll-answer .minus\').each(function(index) {\r\n            $(this).replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeAnswer(\' + index + \')">\');\r\n        });\r\n    }\r\n    function isScrolledIntoView(elem, view) {\r\n        var $elem = $(elem);\r\n        var $view = $(view);\r\n        var docViewLeft = $view.offset().left;\r\n        var docViewRight = docViewLeft + $view.width();\r\n        var elLeft = $elem.offset().left;\r\n        var elRight = elLeft + $elem.width();\r\n        // return ((elemRight <= docViewRight) && (elemLeft >= docViewLeft)); // partly visible\r\n        return ((docViewLeft < elLeft) && (docViewRight > elRight));\r\n    }\r\n    function left(){\r\n        var lastHideLeft = null;\r\n        var n=-1;\r\n        $("#members").find("a").each(function(i){\r\n            if(!isScrolledIntoView(this, $("#members"))){\r\n                lastHideLeft=this;\r\n                n=i;\r\n            }else{\r\n                return false;\r\n            }\r\n        });\r\n        if(lastHideLeft) {\r\n            //$(lastHideLeft).css(\'border\',"1px solid #f00");\r\n            $("#members").scrollLeft($("#members").scrollLeft()  + $(lastHideLeft).position().left-1);\r\n        }\r\n    }\r\n    function right(){\r\n        var firstHideRight=null;\r\n        var foundVisible=false;\r\n        var n=-1;\r\n        $("#members").find("a").each(function(i){\r\n            if(!isScrolledIntoView(this, $("#members"))){\r\n                if(foundVisible){\r\n                    firstHideRight=this;\r\n                    n=i;\r\n                    return false;\r\n                }\r\n            }else{\r\n                foundVisible=true;\r\n            }\r\n        });\r\n        if(firstHideRight) {\r\n            $("#members").scrollLeft($("#members").scrollLeft()\r\n                    + $(firstHideRight).position().left\r\n                    - $("#members").width() + $(firstHideRight).width() + 1);\r\n        }\r\n    }\r\n    $(document).ready(function() {\r\n        $("#members").scrollLeft(0);\r\n        $(\'.card-link\').attr(\'target\', \'_blank\');\r\n        $(\'.delete-icon\').click(function(event) {\r\n            event.preventDefault();\r\n            var title = \'Really Delete This Community?\';\r\n            var content = \'If you delete this community, all discussions, memberships and resources will be removed as well. This operation cannot be undone\';\r\n            var continue_url = $(this).attr(\'href\');\r\n            new Dialog($(\'#fixed-dialog\')).showYesNo(title, content, function(ans) {\r\n                this.hide();\r\n                if (!ans) return;\r\n                window.location.href = continue_url;\r\n            });\r\n        });\r\n        $("#newDiscussionButton").click(function(e){\r\n            e.preventDefault();\r\n            scroll(0,0)\r\n        });\r\n        $(\'#skype-start\').click(function(e) {\r\n            e.preventDefault();\r\n            $(\'.skype-container\').attr(\'id\', \'\');\r\n            $(\'.skype-container\').children(\'p\').remove();\r\n            $(\'#create-skype\').off(\'click\');\r\n            var dialog = new Dialog(\'#skype-dialog\');\r\n            dialog.showOverlay();\r\n            dialog.$ei.fadeIn(200);\r\n            $(\'#create-skype\').click(function() {\r\n                var participants = $("input[name=\'skype-participants\']").val().split(/, ?/);\r\n                var topic = $("input[name=\'skype-topic\']").val();\r\n                var skype_params = {\r\n                    name: "call",\r\n                    element: "SkypeButton_Call_" + participants[0] + "_1",\r\n                    participants: participants,\r\n                    imageSize: 24,\r\n                    imageColor: "skype",\r\n                    video: "true",\r\n                    topic: topic\r\n                };\r\n                $(\'.skype-container\').attr(\'id\', \'\');\r\n                $(\'.skype-container\').attr(\'id\', "SkypeButton_Call_" + participants[0] + "_1");\r\n                $(\'.skype-container\').children(\'p\').remove();\r\n                startSkype(skype_params);\r\n            });\r\n        });\r\n    });\r\n</script>\r\n</body>\r\n')
        return ''
    finally:
        context.caller_stack._pop_frame()
コード例 #2
0
def render_body(context,**pageargs):
    __M_caller = context.caller_stack._push_frame()
    try:
        __M_locals = __M_dict_builtin(pageargs=pageargs)
        csrf_token = context.get('csrf_token', UNDEFINED)
        hangout = context.get('hangout', UNDEFINED)
        name = context.get('name', UNDEFINED)
        district = context.get('district', UNDEFINED)
        def title():
            return render_title(context.locals_(__M_locals))
        facilitator = context.get('facilitator', UNDEFINED)
        request = context.get('request', UNDEFINED)
        user_type = context.get('user_type', UNDEFINED)
        private = context.get('private', UNDEFINED)
        community_id = context.get('community_id', UNDEFINED)
        courses = context.get('courses', UNDEFINED)
        state = context.get('state', UNDEFINED)
        courses_drop = context.get('courses_drop', UNDEFINED)
        enumerate = context.get('enumerate', UNDEFINED)
        logo = context.get('logo', UNDEFINED)
        motto = context.get('motto', UNDEFINED)
        resources = context.get('resources', UNDEFINED)
        __M_writer = context.writer()
        # SOURCE LINE 7
        __M_writer(u'\n')
        # SOURCE LINE 8
        __M_writer(u'\n')
        # SOURCE LINE 9
        __M_writer(u'\n')
        # SOURCE LINE 10
        __M_writer(u'\n')
        if 'parent' not in context._data or not hasattr(context._data['parent'], 'title'):
            context['self'].title(**pageargs)
        

        # SOURCE LINE 11
        __M_writer(u'\n<link rel="stylesheet" type="text/css"  href="/static/css/communities.css"/>\n\n<style type="text/css" media="screen">\n    #page-nav,#page-footer{width:1180px;}\n    #btn-logged-user{display:none;}\n    .form-select{font-size:14px !important;width:180px;}\n    .image-link-style{\n        border-radius: 6px;\n        -moz-border-radius: 6px;\n        -webkit-border-radius: 6px;\n        display: block;\n        float: left;\n        margin: 30px;\n    }\n    .image-bottom-style{\n        border-radius: 0 0 6px 6px;\n        -moz-border-radius: 0 0 6px 6px;\n        -webkit-border-radius: 0 0 6px 6px;\n        display: block;\n    }\n    .card-link{\n        display: table-cell;\n        width: 240px;\n        height: 60px;\n        vertical-align: middle;\n        padding: 0 17px;\n        font-size: 22px;\n        background: rgba(18,111,154,0.95);\n        text-decoration: none!important;\n    }\n    .card-link span{\n        color: #FFFFFF;\n    }\n    .community-form {\n        margin: 0 auto;\n        width: 900px;\n        padding: 20px;\n    }\n    #community-name,\n    #community-hangouts,\n    #community-logo,\n    #community-facilitator,\n    #community-state,\n    #community-district {\n        display: block;\n        float: left;\n        margin: 0 40px 20px 0;\n        text-align: left;\n        position: relative;\n    }\n    .community-form label {\n        cursor: default !important;\n    }\n    #community-logo .remove {\n        display: block;\n        background: #fff center url(/static/images/moderator-delete-icon.png) no-repeat;\n        width: 12px;\n        height: 11px;\n        border: solid 1px #ddd;\n        border-radius: 1px;\n        position: absolute;\n        top: 1.25em;\n        right: 2px;\n    }\n    #community-name input, #community-facilitator input {\n        display: block;\n        width: 500px;\n    }\n    #community-logo input,\n    #community-state select,\n    #community-district select {\n        display: block;\n    }\n    #community-name,\n    #community-motto,\n    #community-courses,\n    #community-resources {\n        clear: both;\n        display: block;\n        text-align: left;\n        margin-bottom: 20px;\n    }\n    #community-motto input {\n        display: block;\n        width: 860px;\n    }\n    #community-state {\n        float: left;\n    }\n    #community-private {\n        display: block;\n        float: right;\n        text-align: left;\n        clear: both;\n    }\n    #community-private input {\n        margin-left: 10px;\n    }\n    #community-hangouts div {\n        line-height: 2.5em;\n    }\n    #community-hangouts input {\n        width: 500px;\n    }\n    #community-courses span, #community-resources span, #community-logo span {\n        display: block;\n    }\n    #community-courses input, #community-courses select, #community-resources input, .resource-logo-label {\n        display: block;\n        float: left;\n        margin: 0 20px 20px 0;\n    }\n    .resource-link, .resource-name {\n        width: 220px;\n    }\n    #community-form-buttons {\n        clear: both;\n        margin: 0 auto;\n        padding-top: 20px;\n        text-align: right;\n    }\n    #community-cancel {\n        float: left;\n    }\n    #community-resources .add, #community-courses .add {\n        padding: 0 6px;\n    }\n    #community-resources .minus, #community-courses .minus {\n        padding: 0 8px;\n    }\n    .community-course, .community-resource, #community-state {\n        clear: both;\n    }\n    .community-logo-thumb {\n        float: left;\n        width: 150px;\n        margin-right: 10px;\n    }\n    .community-resource-logo-wrap {\n        float: left;\n        width: 150px;\n        margin-right: 10px;\n        position: relative;\n    }\n    .community-resource-logo-wrap .remove {\n        display: block;\n        background: #fff center url(/static/images/moderator-delete-icon.png) no-repeat;\n        width: 12px;\n        height: 11px;\n        border: solid 1px #ddd;\n        border-radius: 1px;\n        position: absolute;\n        top: -2px;\n        right: -2px;\n    }\n    .community-error-box {\n        border-color: red !important;\n    }\n    .about-field {\n        color: #999;\n        font-size: 80%;\n        display: inline !important;\n    }\n</style>\n<section class="community-form" style="text-align:center;background:#F5F5F5;">\n    <form action="')
        # SOURCE LINE 177
        __M_writer(filters.decode.utf8(reverse('community_edit_process')))
        __M_writer(u'" method="post" enctype="multipart/form-data" id="community-edit-form">\n        <label id="community-name"><span>Community Name:</span><input type="text" name="name" value="')
        # SOURCE LINE 178
        __M_writer(filters.decode.utf8(name))
        __M_writer(u'" placeholder="The name of the community"></label>\n')
        # SOURCE LINE 179
        if logo != '':
            # SOURCE LINE 180
            __M_writer(u'            <label id="community-logo"><span>Logo:</span><img class="community-logo-thumb" src="')
            __M_writer(filters.decode.utf8(logo))
            __M_writer(u'"><input type="hidden" name="logo" value="')
            __M_writer(filters.decode.utf8(logo))
            __M_writer(u'"><a href="#" class="remove"></a></label>\n')
            # SOURCE LINE 181
        else:
            # SOURCE LINE 182
            __M_writer(u'            <label id="community-logo"><span>Logo <span class="about-field">(380px X 260px or larger for best results)</span>:</span><input type="file" name="logo"></label>\n')
        # SOURCE LINE 184
        __M_writer(u'        <label id="community-motto"><span>Description (Motto):</span><input type="text" name="motto" value="')
        __M_writer(filters.decode.utf8(motto))
        __M_writer(u'" placeholder="A description or motto for this community"></label>\n        <label id="community-facilitator"><span>Facilitator:</span><input type="text" name="facilitator" value="')
        # SOURCE LINE 185
        __M_writer(filters.decode.utf8(facilitator))
        __M_writer(u'" placeholder="The email of the user who will administer this community"></label>\n')
        # SOURCE LINE 186
        if user_type == 'super':
            # SOURCE LINE 187
            __M_writer(u'            <label id="community-state"><span>Select State:</span>\n                <select id="state-dropdown" name="state-dropdown"></select>\n            </label>\n            <label id="community-district"><span>Select District:</span>\n                <select id="district-dropdown" name="district-dropdown"></select>\n            </label>\n')
            # SOURCE LINE 193
        else:
            # SOURCE LINE 194
            __M_writer(u'            <label id="community-state"><span>Select State:</span>\n                <select id="state-dropdown" name="state-dropdown" disabled></select>\n            </label>\n            <label id="community-district"><span>Select District:</span>\n                <select id="district-dropdown" name="district-dropdown" disabled></select>\n            </label>\n')
        # SOURCE LINE 201
        if private:
            # SOURCE LINE 202
            __M_writer(u'            <label id="community-private"><span>Private Group:</span><input type="checkbox" name="private" value="1" checked="checked"></label>\n')
            # SOURCE LINE 203
        else:
            # SOURCE LINE 204
            __M_writer(u'            <label id="community-private"><span>Private Group:</span><input type="checkbox" name="private" value="1"></label>\n')
        # SOURCE LINE 206
        if has_hangout_perms(request.user):
            # SOURCE LINE 207
            __M_writer(u'            <label id="community-hangouts"><span>Hangouts Setup:</span>\n                <div>\n                    <span>1. </span><a href="http://hangouts.google.com/start" target="_blank">Start Hangout</a>&nbsp;&nbsp;&nbsp;\n                    <span>2. </span><input type="text" name="hangout" value="')
            # SOURCE LINE 210
            __M_writer(filters.decode.utf8(hangout))
            __M_writer(u'" placeholder="Copy/Paste Hangout URL Here">\n                </div>\n            </label>\n')
        # SOURCE LINE 214
        __M_writer(u'        <label id="community-courses"><span>Courses:</span>\n')
        # SOURCE LINE 215
        for idx, course in enumerate(courses):
            # SOURCE LINE 216
            __M_writer(u'            <div class="community-course">\n                <select name="course[')
            # SOURCE LINE 217
            __M_writer(filters.decode.utf8(idx))
            __M_writer(u']">\n                    <option value="">Select a Course</option>\n')
            # SOURCE LINE 219
            for course_option in courses_drop:
                # SOURCE LINE 220
                if course == course_option['id']:
                    # SOURCE LINE 221
                    __M_writer(u'                            <option value="')
                    __M_writer(filters.decode.utf8(course_option['id']))
                    __M_writer(u'" selected="selected">')
                    __M_writer(filters.decode.utf8(course_option['number']))
                    __M_writer(u' | ')
                    __M_writer(filters.decode.utf8(course_option['name']))
                    __M_writer(u'</option>\n')
                    # SOURCE LINE 222
                else:
                    # SOURCE LINE 223
                    __M_writer(u'                            <option value="')
                    __M_writer(filters.decode.utf8(course_option['id']))
                    __M_writer(u'">')
                    __M_writer(filters.decode.utf8(course_option['number']))
                    __M_writer(u' | ')
                    __M_writer(filters.decode.utf8(course_option['name']))
                    __M_writer(u'</option>\n')
            # SOURCE LINE 226
            __M_writer(u'                </select>\n                <input type="button" class="add operation" value="+" onclick="newCourse()">\n            </div>\n')
        # SOURCE LINE 230
        __M_writer(u'        </label>\n        <label id="community-resources"><span>Resources:</span>\n')
        # SOURCE LINE 232
        for idx, resource in enumerate(resources):
            # SOURCE LINE 233
            __M_writer(u'            <div class="community-resource">\n                <input class="resource-name" type="text" name="resource_name[')
            # SOURCE LINE 234
            __M_writer(filters.decode.utf8(idx))
            __M_writer(u']" value="')
            __M_writer(filters.decode.utf8(resource['name']))
            __M_writer(u'" placeholder="Resource name">\n                <input class="resource-link" type="text" name="resource_link[')
            # SOURCE LINE 235
            __M_writer(filters.decode.utf8(idx))
            __M_writer(u']" value="')
            __M_writer(filters.decode.utf8(resource['link']))
            __M_writer(u'" placeholder="Resource link">\n                <label><div class="resource-logo-label">Logo:</div>\n')
            # SOURCE LINE 237
            if resource['logo']:
                # SOURCE LINE 238
                __M_writer(u'                    <div class="community-resource-logo-wrap">\n                        <img src="')
                # SOURCE LINE 239
                __M_writer(filters.decode.utf8(get_file_url(resource['logo'])))
                __M_writer(u'" class="community-logo-thumb">\n                        <input class="community-resource-logo" type="hidden" name="resource_logo[')
                # SOURCE LINE 240
                __M_writer(filters.decode.utf8(idx))
                __M_writer(u']" value="')
                __M_writer(filters.decode.utf8(resource['logo'].id))
                __M_writer(u'">\n                        <a href="#" class="remove"></a>\n                    </div>\n')
                # SOURCE LINE 243
            else:
                # SOURCE LINE 244
                __M_writer(u'                    <input class="resource-logo" type="file" name="resource_logo[')
                __M_writer(filters.decode.utf8(idx))
                __M_writer(u']">\n')
            # SOURCE LINE 246
            __M_writer(u'                </label>\n                <input type="button" class="add operation" value="+" onclick="newResource()">\n            </div>\n')
        # SOURCE LINE 250
        __M_writer(u'        </label>\n        <input type="hidden" value="')
        # SOURCE LINE 251
        __M_writer(filters.decode.utf8(community_id))
        __M_writer(u'" name="community_id">\n        <input type="hidden" name="csrfmiddlewaretoken" value="')
        # SOURCE LINE 252
        __M_writer(filters.decode.utf8(csrf_token))
        __M_writer(u'"/>\n        <div id="community-form-buttons">\n            <input id="community-cancel" type="button" value="Cancel">\n            <input id="community-submit" type="submit" value="Submit" name="submit">\n        </div>\n    </form>\n</section>\n<script type="text/javascript">\n    function newCourse() {\n        var course_num = $(\'.community-course\').length;\n        $(\'.community-course\').each(function(index) {\n            $(this).find(\'.operation\').replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeCourse(\' + index + \')">\');\n        });\n        var entry = \'<div class="community-course"><select name="course[\' + course_num + \']"><option value="">Select a Course</option>\';\n')
        # SOURCE LINE 266
        for course_option in courses_drop:
            # SOURCE LINE 267
            __M_writer(u'            entry += \'<option value="')
            __M_writer(filters.decode.utf8(course_option['id']))
            __M_writer(u'">')
            __M_writer(filters.decode.utf8(course_option['number']))
            __M_writer(u' | ')
            __M_writer(filters.decode.utf8(course_option['name'].replace("'", r"\'")))
            __M_writer(u"</option>';\n")
        # SOURCE LINE 269
        __M_writer(u'        entry += \'</select><input type="button" class="add operation" value="+" onclick="newCourse()"></div>\';\n        $(\'#community-courses\').append(entry);\n    }\n    function newResource() {\n        var resource_num = $(\'.community-resource\').length;\n        $(\'.community-resource\').each(function(index) {\n            $(this).find(\'.operation\').replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeResource(\' + index + \')">\');\n        });\n        var entry = \'<div class="community-resource">\';\n        entry += \'<input class="resource-name" type="text" name="resource_name[\' + resource_num + \']" value="" placeholder="Resource name">\';\n        entry += \'<input class="resource-link" type="text" name="resource_link[\' + resource_num + \']" value="" placeholder="Resource link">\';\n        entry += \'<label><div class="resource-logo-label">Logo:</div><input  class="resource-logo" type="file" name="resource_logo[\' + resource_num + \']"></label>\';\n        entry += \'<input type="button" class="add operation" value="+" onclick="newResource()">\';\n        $(\'#community-resources\').append(entry);\n    }\n    function removeCourse(index) {\n        $(\'.community-course\').each(function(i) {\n            if (i == index) {\n                $(this).remove();\n            } else {\n                var num = 0;\n                if (i < index) {\n                    num = i;\n                }\n                if (i > index) {\n                    num = i - 1;\n                }\n                $(this).children(\'select\').attr(\'name\', \'course[\' + num + \']\');\n            }\n        });\n        $(\'.community-course .minus\').each(function(index) {\n            $(this).replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeCourse(\' + index + \')">\');\n        });\n    }\n    function removeResource(index) {\n        $(\'.community-resource\').each(function(i) {\n            if (i == index) {\n                $(this).remove();\n            } else {\n                var num = 0;\n                if (i < index) {\n                    num = i;\n                }\n                if (i > index) {\n                    num = i - 1;\n                }\n                $(this).children(\'.resource-link\').attr(\'name\', \'resource_link[\' + num + \']\');\n                $(this).children(\'.resource-name\').attr(\'name\', \'resource_name[\' + num + \']\');\n                $(this).children(\'.resource-logo\').attr(\'name\', \'resource_logo[\' + num + \']\');\n            }\n        });\n        $(\'.community-resource .minus\').each(function(index) {\n            $(this).replaceWith(\'<input type="button" class="minus operation" value="-" onclick="removeResource(\' + index + \')">\');\n        });\n    }\n    function checkUser(email) {\n        var valid = true;\n        $.ajax({\n            url: "')
        # SOURCE LINE 327
        __M_writer(filters.decode.utf8(reverse('community_check_user')))
        __M_writer(u'",\n            type: \'GET\',\n            async: false,\n            data: {email: email},\n            success: function(data) {\n                valid = data.Valid;\n            }\n        });\n        return valid;\n    }\n    var state_id = \'')
        # SOURCE LINE 337
        __M_writer(filters.decode.utf8(state))
        __M_writer(u"';\n    var district_id = '")
        # SOURCE LINE 338
        __M_writer(filters.decode.utf8(district))
        __M_writer(u"';\n    $(document).ready(function() {\n        $.get('")
        # SOURCE LINE 340
        __M_writer(filters.decode.utf8(reverse('pepper_utilities_drop_states')))
        __M_writer(u'\', function (data) {\n            // Build the options.\n            var options = \'<option value=""></option>\';\n            $.each(data, function (index, object) {\n                options += \'<option value="\' + object.id+ \'"\';\n                if (object.id == state_id) {\n                    options += \' selected\';\n                }\n                options += \'>\' + object.name + \'</option>\';\n            });\n            // Add them to the state dropdown.\n            $(\'#state-dropdown\').append(options);\n            $("#state-dropdown").change(function () {\n                if ($(this).val()) {\n                    // Clear the current district and school options since the state changed.\n                    $(\'#district-dropdown option\').remove();\n                    // Get the allowed Districts\n                    $.get(\'')
        # SOURCE LINE 357
        __M_writer(filters.decode.utf8(reverse('pepper_utilities_drop_districts')))
        __M_writer(u'\', {state: $(this).val()}, function (data) {\n                        var content = \'<option value=""></option>\';\n                        $.each(data, function (index, object) {\n                            content += \'<option value="\' + object.id + \'"\';\n                            if (object.id == district_id) {\n                                content += \' selected\';\n                            }\n                            content += \'>\' + object.name + \'</option>\';\n                        });\n                        // Add it to the form.\n                        $(\'#district-dropdown\').append(content);\n                    });\n                }\n            });\n            if (state_id) {\n                $("#state-dropdown").trigger(\'change\');\n            }\n        });\n        $(\'#community-logo .remove\').click(function() {\n            var content = \'<label id="community-logo"><span>Logo <span class="about-field">(380px X 260px or larger for best results)</span>:</span><input type="file" name="logo"></label>\';\n            $(\'#community-logo\').replaceWith(content);\n        });\n        $(\'.community-resource .remove\').click(function() {\n            var name = $(this).siblings(\'.community-resource-logo\').attr(\'name\');\n            var content = \'<input class="resource-logo" type="file" name="\' + name + \'">\';\n            $(this).parent(\'.community-resource-logo-wrap\').replaceWith(content);\n        });\n        $(\'#community-cancel\').click(function() {\n')
        # SOURCE LINE 385
        if community_id == 'new':
            # SOURCE LINE 386
            __M_writer(u'                window.location.href = "')
            __M_writer(filters.decode.utf8(reverse('communities')))
            __M_writer(u'";\n')
            # SOURCE LINE 387
        else:
            # SOURCE LINE 388
            __M_writer(u'                window.location.href = "')
            __M_writer(filters.decode.utf8(reverse('community_view', args=[community_id])))
            __M_writer(u'";\n')
        # SOURCE LINE 390
        __M_writer(u"        });\n        $('#community-edit-form').submit(function() {\n            $('.community-error-box').removeClass('community-error-box');\n            var valid = true;\n            var errors = ['The following errors occurred:\\n'];\n            if (!/[A-Za-z]/.test($('#community-name input').val())) {\n                valid = false;\n                errors.push('Name is required.');\n                $('#community-name input').addClass('community-error-box');\n            }\n            if (!/^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/.test($('#community-facilitator input').val())) {\n                valid = false;\n                errors.push('Valid facilitator email is required.');\n                $('#community-facilitator input').addClass('community-error-box');\n            } else if (!checkUser($('#community-facilitator input').val())) {\n                valid = false;\n                errors.push('This email is not currently in our system.');\n                $('#community-facilitator input').addClass('community-error-box');\n            }\n            if (!valid) {\n                var error = errors.join('\\n');\n                alert(error);\n            }\n            return valid;\n        });\n    });\n</script>")
        return ''
    finally:
        context.caller_stack._pop_frame()