Code Duplication    Length = 27-34 lines in 5 locations

pyfreebill/views.py 2 locations

@@ 161-194 (lines=34) @@
158
    return global_stats_view(request, vue='dest_provider')
159
160
161
@staff_member_required
162
def FsDirectoryUpdateView(request):
163
    messages.info(request, """Reloading FS""")
164
    try:
165
        t = loader.get_template('xml/directory.conf.xml')
166
    except IOError:
167
        messages.error(request, """customer sip config xml file update failed.
168
            Can not load template file !""")
169
    customerdirectorys = CustomerDirectory.objects.filter(
170
        company__customer_enabled__exact=True, enabled=True)
171
    accounts = Company.objects.filter(customer_enabled=True)
172
    c = Context({"customerdirectorys": customerdirectorys,
173
                 "accounts": accounts})
174
    try:
175
        f = open('/usr/local/freeswitch/conf/directory/default.xml', 'w')
176
        try:
177
            f.write(t.render(c))
178
            f.close()
179
            try:
180
                fs = esl.getReloadACL()
181
                messages.success(request, "FS successfully reload")
182
            except IOError:
183
                messages.error(request, """customer sip config xml file update
184
                    failed. FS ACL update failed ! Try manually - %s""" % fs)
185
        finally:
186
            # f.close()
187
            messages.success(request, """customer sip config xml file update
188
                success""")
189
    except IOError:
190
        messages.error(request, """customer sip config xml file update failed.
191
            Can not create file !""")
192
    pfb_version = __version__
193
    return render_to_response('admin/admin_status.html', locals(),
194
                              context_instance=RequestContext(request))
195
196
197
def FsSofiaUpdateView(request):
@@ 197-228 (lines=32) @@
194
                              context_instance=RequestContext(request))
195
196
197
def FsSofiaUpdateView(request):
198
    """ generate new sofia xml config file """
199
    try:
200
        t = loader.get_template('xml/sofia.conf.xml')
201
    except IOError:
202
        messages.error(request,
203
                       """sofia config xml file update failed. Can not load
204
                       template file !""")
205
    sipprofiles = SipProfile.objects.all()
206
    accounts = Company.objects.filter(supplier_enabled=True)
207
    c = Context({"sipprofiles": sipprofiles, "accounts": accounts})
208
    try:
209
        f = open('/usr/local/freeswitch/conf/autoload_configs/sofia.conf.xml',
210
                 'w')
211
        try:
212
            f.write(t.render(c))
213
            f.close()
214
            try:
215
                fs = esl.getReloadGateway(request)
216
                messages.success(request, "FS successfully reload")
217
            except IOError:
218
                messages.error(request, """customer sip config xml file update
219
                    failed. FS ACL update failed ! Try manually -- %s""" % fs)
220
        finally:
221
            # f.close()
222
            messages.success(request, "sofia config xml file update success")
223
    except IOError:
224
        messages.error(request, """sofia config xml file update failed. Can
225
            not create file !""")
226
    pfb_version = __version__
227
    return render_to_response('admin/admin_status.html', locals(),
228
                              context_instance=RequestContext(request))
229
230
231
def time_series(queryset, date_field, interval, func=None):

pyfreebill/admin.py 3 locations

@@ 85-113 (lines=29) @@
82
sofiaupdate.short_description = _(u"update sofia config xml file")
83
84
85
def directoryupdate(modeladmin, request, queryset):
86
    """ generate new directory xml config file """
87
    try:
88
        t = loader.get_template('xml/directory.conf.xml')
89
    except IOError:
90
        messages.error(request, """customer sip config xml file update failed.
91
            Can not load template file !""")
92
    customerdirectorys = CustomerDirectory.objects.filter(company__customer_enabled__exact=True, enabled=True)
93
    accounts = Company.objects.filter(customer_enabled=True)
94
    c = Context({"customerdirectorys": customerdirectorys,
95
                 "accounts": accounts})
96
    try:
97
        f = open('/usr/local/freeswitch/conf/directory/default.xml', 'w')
98
        try:
99
            f.write(t.render(c))
100
            f.close()
101
            try:
102
                fs = esl.getReloadACL()
103
                messages.success(request, "FS successfully reload")
104
            except IOError:
105
                messages.error(request, """customer sip config xml file update
106
                    failed. FS ACL update failed ! Try manually - %s""" % fs)
107
        finally:
108
            #f.close()
109
            messages.success(request, """customer sip config xml file update
110
                success""")
111
    except IOError:
112
        messages.error(request, """customer sip config xml file update failed.
113
            Can not create file !""")
114
directoryupdate.short_description = _(u"update customer sip config xml file")
115
116
@@ 53-81 (lines=29) @@
50
DEFAULT_FORMATS = (base_formats.CSV, )
51
52
53
def sofiaupdate(modeladmin, request, queryset):
54
    """ generate new sofia xml config file """
55
    try:
56
        t = loader.get_template('xml/sofia.conf.xml')
57
    except IOError:
58
        messages.error(request,
59
                       """sofia config xml file update failed. Can not load
60
                       template file !""")
61
    sipprofiles = SipProfile.objects.all()
62
    accounts = Company.objects.filter(supplier_enabled=True)
63
    c = Context({"sipprofiles": sipprofiles, "accounts": accounts})
64
    try:
65
        f = open('/usr/local/freeswitch/conf/autoload_configs/sofia.conf.xml',
66
                 'w')
67
        try:
68
            f.write(t.render(c))
69
            f.close()
70
            try:
71
                fs = esl.getReloadGateway()
72
                messages.success(request, "FS successfully reload")
73
            except IOError:
74
                messages.error(request, """customer sip config xml file update
75
                    failed. FS ACL update failed ! Try manually -- %s""" % fs)
76
        finally:
77
            #f.close()
78
            messages.success(request, "sofia config xml file update success")
79
    except IOError:
80
        messages.error(request, """sofia config xml file update failed. Can
81
            not create file !""")
82
sofiaupdate.short_description = _(u"update sofia config xml file")
83
84
@@ 117-143 (lines=27) @@
114
directoryupdate.short_description = _(u"update customer sip config xml file")
115
116
117
def aclupdate(modeladmin, request, queryset):
118
    """ generate new ACL xml config file """
119
    try:
120
        t = loader.get_template('xml/acl.conf.xml')
121
    except IOError:
122
        messages.error(request, """ACL config xml file update failed. Can
123
            not load template file !""")
124
    acllists = AclLists.objects.all()
125
    aclnodes = AclNodes.objects.all()
126
    c = Context({"acllists": acllists, "aclnodes": aclnodes})
127
    try:
128
        f = open('/usr/local/freeswitch/conf/autoload_configs/acl.conf.xml',
129
                 'w')
130
        try:
131
            f.write(t.render(c))
132
            f.close()
133
            try:
134
                fs = esl.getReloadACL()
135
                messages.success(request, "FS successfully reload")
136
            except IOError:
137
                messages.error(request, """ACL config xml file update failed.
138
                    FS ACL update failed ! Try manually--- %s""" % fs)
139
        finally:
140
            messages.success(request, "ACL config xml file update success")
141
    except IOError:
142
        messages.error(request, """ACL xml file update failed. Can not
143
            create file !""")
144
aclupdate.short_description = _(u"update ACL config xml file")
145
146
admin.site.add_action(directoryupdate, _(u"""generate customer sip